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的用法



posted @ 2019-03-13 13:19  tyong  阅读(207)  评论(0编辑  收藏  举报