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
)