企业官网建站 小程序开发 云逸学习园地
技术文章 许愿墙
技术文章 PHP学习 Javascript学习 DIV+CSS学习 uniapp学习 HTML学习 微信小程序、公众号知识点 VUE知识学习
您所在的位置>云逸小栈>PHP学习>正文

in_array、array_map、array_filter的使用

2026-05-14 13:27:06 浏览 21

1、in_array()

说明: 检查数组中是否存在某个值bool in_array ( mixed needle, array haystack [, bool strict] )

在 haystack 中搜索 needle,如果找到则返回 TRUE,否则返回 FALSE。

如果第三个参数 strict 的值为 TRUE 则 in_array() 函数还会检查 needle 的类型是否和 haystack 中的相同。

严格类型检测  in_array("str",$string,true)
非严格类型检测:in_array("str",$string)

2、array_map()

说明:将回调函数作用到给定数组的单元上,array array_map ( callback callback, array arr1 [, array ...] )
array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

比如:$a="1,2,3,"
$b=explode(",",$a) 分割完之后会有一个空值
这时候用 array_map("intval",$b)) 返回的就是数字值 可以把空  转化成0
再用 array_filter(array_map("intval",$b)))过滤下  就获可以把空值过滤掉
例子:
        $a = "1,2,3,4,";
        $b=explode(",",$a);
        print_r($b);
        $c=array_map("intval",$b);
        print_r($c);
        $d=array_filter($c);
        print_r($d);
返回的结果:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 0 )
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )

3、array_filter() 

---用回调函数过滤数组中的单元

说明:array array_filter ( array input [, callback callback] )

array_filter() 依次将 input 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变

有返回值

<?php
function odd($var)
{
   return($var % 2 == 1);
}

function even($var)
{
   return($var % 2 == 0);
}

$array1 = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);
echo "Odd :\n";
print_r(array_filter($array1, "odd"));
echo "Even:\n";
print_r(array_filter($array2, "even"));
?>

无返回值

<?php

$entry = array(
            0 => 'foo',
            1 => false,
            2 => -1,
            3 => null,
            4 => ''
         );

print_r(array_filter($entry));
?>

结果:
Array
(
   [0] => foo
   [2] => -1
)


网站开发者电话

18066742510

个人微信号
个人公众号
个人小程序
个人抖音