hi,欢迎访问本站!
当前位置: 首页编程开发正文

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的编程是大大的用好处的。

声明:无特别说明,转载请标明本文来源!
相关推荐