数组回调相关函数
一、array_filter
(一)语法
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
(二)参数
- array:数组;
callable:回调函数(可选)。
(三)功能
array_filter() 函数用回调函数过滤数组中的元素。
(四)自定义 array_filter
function myArrFilter(array $arr,callable $func){ foreach($arr as $k =>$v){ if($func($v)){ $re[$k] = $v; } } return $re; }
(五)应用:
筛选数组中的奇数。
二、array_map
(一)语法
array_map(myfunction,array1,array2,array3...)
(二)参数
- myfunction:回调函数;
array:数组;
(三)功能
将用户自定义函数作用到给定数组的每个值上,返回新的值。
(四)自定义 array_map
function myArrMap(callable $func,array $arr){ foreach($arr as $v){ $re[] = $func($v); } return $re; }
目前自定义的 myArrMap 函数并没有完全实现 array_map 的功能,先占位吧,以后再完善。
(五)例子:
<?php function myfunction($num) { return($num*$num); } $a=array(1,2,3,4,5); print_r(array_map("myfunction",$a)); /* [0=>1,1=>4,2=>9,3=>16,4=>25] */
(五)应用
实现数组中的每个数字进行平方运算。
三、array_walk
(一)语法
array_walk(array,myfunction,parameter...)
(二)参数
- array:数组;
myfunction:回调函数。
(三)功能
对数组中的每个成员应用用户函数。
(四)自定义 array_walk
function myArrWalk(array $arr,callable $func){ foreach($arr as $k => $v){ $func($v,$k); } }
(五)应用
显示数组键值对信息。
四、array_reduce
(一)语法
array_reduce(array,myfunction,initial)
(二)参数
- array:数组;
- myfunction:回调函数;
initial:初始值,规定发送到函数处理的第一个值。。
(三)功能
发送数组中的值到用户自定义函数,并返回一个字符串。
注释:如果数组是空的或者初始值未传递,该函数返回 NULL。(四)自定义 array_reduce
function myArrReduce(array $arr,callable $func,$init = ''){ if(empty($arr) || empty($init)){ return NULL; } foreach($arr as $v){ $re = $func($init,$v); $init = $re; } return $re; }
(五)应用
求数组所有数字之和。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。