php几个支持回调函数处理数组的函数(array_filter/array_map/array_walk/array_walk_recursive)
1
array_filter (array,callback)
依次将 array
数组中的每个值传递到 callback
函数。如果 callback
函数返回 true,则 array
数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
2
array_map(callback,array1,array2,...)
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。
*如果只有一个数组则返回值中的数组键名保持不变
<?php
function myfunction($v1,$v2)
{
if ($v1===$v2)
{
return "same";
}
return "different";
}
$a1=array("Horse","Dog","Cat");
$a2=array("Cow","Dog","Rat");
print_r(array_map("myfunction",$a1,$a2)
);
?>
3
array_walk(array,callback,$user_param)
array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。
如需操作更深的数组(一个数组中包含另一个数组),请使用 array_walk_recursive() 函数。
<?php
function myfunction($value,$key,$p)
{
echo "$key $p $value<br>";
}
$a=array("a"=>"red","b"=>"green","c"=>"blue");
array_walk($a,"myfunction","has the value");
?>
array_walk和array_walk_recursive有点想foreach的用法