php回调函数处理数组操作示例
本文实例讲述了php回调函数处理数组操作。分享给大家供大家参考,具体如下:
array_reduce—用回调函数迭代地将数组简化为单一的值
mixedarray_reduce(array$array,callable$callback[,mixed$initial=NULL])
- callback【mixedcallback(mixed$carry,mixed$item)carry--携带上次迭代里的值;如果本次迭代是第一次,那么这个值是initial。item--携带了本次迭代的值。】
- initial【如果指定了可选参数initial,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。】
例:
$res=[ '0'=>[ 'a'=>'you', 'b'=>'me' ], '1'=>[ 'c'=>'li', 'd'=>'op' ] ]; $res=array_reduce($res,function($result,$value){ returnarray_merge($result,array_values($value)); },array()); var_dump($res);
输出:
array(4){
[0]=>
string(3)"you"
[1]=>
string(2)"me"
[2]=>
string(2)"li"
[3]=>
string(2)"op"
}
array_filter—用回调函数过滤数组中的单元
arrayarray_filter(array$array[,callable$callback[,int$flag=0]]) 返回过滤后的数组。
- array--要循环的数组
- callback--使用的回调函数,如果没有提供callback函数,将删除array中所有等值为FALSE的条目。
- flag--决定callback接收的参数形式:
- ARRAY_FILTER_USE_KEY-callback接受键名作为的唯一参数
- ARRAY_FILTER_USE_BOTH-callback同时接受键名和键值
例:
functionodd($var) { //returnswhethertheinputintegerisodd return($var&1); } functioneven($var) { //returnswhethertheinputintegeriseven return(!($var&1)); } $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"));//1,3,5 echo"Even:\n"; print_r(array_filter($array2,"even"));//2,4,6
array_map—为数组的每个元素应用回调函数
array_map(callable$callback,array$array1[,array$...])
参数
- callback--回调函数,应用到每个数组里的每个元素。
- array1--数组,遍历运行callback函数。
...
数组列表,每个都遍历运行callback函数。
返回值----返回数组,包含callback函数处理之后array1的所有元素。
例:
functioncube($n) { return($n*$n*$n); } $a=array(1,2,3,4,5); $b=array_map("cube",$a); print_r($b);
输出:
Array
(
[0]=>1
[1]=>8
[2]=>27
[3]=>64
[4]=>125
)
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》及《PHP数学运算技巧总结》
希望本文所述对大家PHP程序设计有所帮助。