php中必须了解的4个数组处理函数
墨初 编程开发 521阅读
下面博文中介绍四个php中处理数组的函数,它们分别为array_filter(),array_map(),array_walk()以及array_reduce(),熟练的掌握这四个函数可以让我们在开发php程序中不用去写多么多的循环操作了,而这四个函数的执行效率也很高。
php array_filter() 函数
array_filter():可以使用回调函数来处理并过滤数据中的元素。
话法:
array_filter(array,callbackfunction);
参数:
参数 | 描述 |
---|---|
array | 必需。规定要过滤的数组。 |
callbackfunction | 必需。规定要用的回调函数。 |
例:
$arr = array('a',0,'b','c',1,2); $new_arr = array_filter($arr,function($v){ if(is_string($v)){ return $v; } }); print_r($new_arr); // Array ( [0] => a [2] => b [3] => c )
php array_map() 函数
array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新的值的数组。
语法:
array_map(myfunction,array1,array2,array3...)
参数:
参数 | 描述 |
---|---|
myfunction | 必需。用户自定义函数的名称,或者是 null。 |
array1 | 必需。规定数组。 |
array2 | 可选。规定数组。 |
例:
$arr1 = array(1,2,3,4,5); $arr2 = array(6,7,8,9,10,55); //函数写前面,数组参数写后面 2个数组的计算,也不需要自己循环计算 $new_arr = array_map(function($val1,$val2){ return $val1 + $val2; },$arr1,$arr2); var_dump($new_arr); // 输出结果 array(6) { [0]=> int(7) [1]=> int(9) [2]=> int(11) [3]=> int(13) [4]=> int(15) [5]=> int(55) }
php array_walk()
array_walk():此函数可以将数组中的每个元素应用用户自定义函数,且数组的键名和键值是参数。
语法:
array_walk(array,myfunction,parameter...)
参数:
参数 | 描述 |
---|---|
array | 必需。规定数组。 |
myfunction | 必需。用户自定义函数的名称。 |
parameter,... | 可选。规定用户自定义函数的参数,您可以为函数设置一个或多个参数。 |
例:
$arr = array('a','b','b','c'); array_walk($arr,function(&$val,$key){ $val = $val . 'b'; }); var_dump($arr); //输出结果 array(4) { [0]=> string(2) "ab" [1]=> string(2) "bb" [2]=> string(2) "bb" [3]=> string(2) "cb" }
php array_reduce()
array_reduce():函数发送数组中的值到用户自定义函数,并返回一个字符串。
语法:
array_reduce(array,myfunction,initial)
例:
$array = array(10,15,20,60); $as = array_reduce($array,function($v,$v1){ var_dump($v); var_dump($v1); echo '<br/>'; return $v + $v1; },50); //输出结果 int(50) int(10) <br/>int(60) int(15) <br/>int(75) int(20) <br/>int(95) int(60) <br/>
以上就是就重点介绍的四个数组处理函数 array_filter(),array_map(),array_walk()以及array_reduce(),熟练的掌握这四个数组函数对php的编程是大大的用好处的。