php中必须了解的4个数组处理函数
墨初 编程开发 1064阅读
下面博文中介绍四个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的编程是大大的用好处的。