在日常的开发中foreach
是我们用的最多的语法,但是有很多地方是不需要foreach
就可以完成,而且比foreach
更快。所以本篇文章给大家带来array_filter()
,array_map()
,array_walk()
,array_reduce()
这四个数组操作函数。只要学会了这四个函数我们在开发中就不用去写那么多循环操作了,而且效率比循环取值更快。
array_filter()
1
2
3
4
5
6
7
8
9
10
|
$arr = [ 'a' ,0, 'b' , 'c' ,1,2,3,4,5,6,7];
//过滤掉所有的数字,只要字符串 减少自己循环的必要
$new_arr = array_filter ( $arr , function ( $v ){
if ( is_string ( $v )){
return $v ;
}
});
print_r( $new_arr );
//返回结果
// Array ( [0] => a [2] => b [3] => c )
|
array_map()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
$arr1 = [1,2,3,4,5];
$arr2 = [6,7,8,9,10,55];
//函数写前面,数组参数写后面 2个数组的计算,也不需要自己循环计算
$new_arr = array_map ( function ( $val1 , $val2 ){
return $val1 + $val2 ;
}, $arr1 , $arr2 );
var_dump( $new_arr );
//返回结果
//array (size=5)
// 0 => int 7
// 1 => int 9
// 2 => int 11
// 3 => int 13
// 4 => int 15
// 5 => int 55
//将数组中的元素用于某种操作
$arr = [ 'a' , 'b' , 'c' , 'd' , 'e' , 'f' ,8];
array_walk ( $arr , function ( $val , $key ){
echo "{$key} is {$val} <br/>" ;
});
//返回结果
// 0 is a
// 1 is b
// 2 is c
// 3 is d
// 4 is e
// 5 is f
// 6 is 8
|
array_walk()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
$arr = [ 'a' ,0, 'b' , 'c' ,1,2,3,4,5,6,7];
//改变数组中的值,传参的时候使用引用 同意加个连接符3
array_walk ( $arr , function (& $val , $key ){
$val = $val . 3;
});
var_dump( $arr );
// array (size=7)
// 0 => string 'a3' (length=2)
// 1 => string 'b3' (length=2)
// 2 => string 'c3' (length=2)
// 3 => string 'd3' (length=2)
// 4 => string 'e3' (length=2)
// 5 => string 'f3' (length=2)
// 6 => string '83' (length=2)
|
array_reduce()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
//一个数组求和,还可以给第三个参数,作为第一个值
$array = [10,15,20,60];
$as = array_reduce ( $array , function ( $k , $v ){
print_r( 'k:' . $k ); echo "<br/>" ;
print_r( 'v:' . $v ); echo "<br/>" ;
return $k + $v ;
},50);
print_r( '总计:' . $as );
// k:50
// v:10
// k:60
// v:15
// k:75
// v:20
// k:95
// v:60
// 总计:155echo "<br/>";
|
以上就是PHP中你必须了解的4种Array函数的详细内容,更多请关注php中文网其它相关文章
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/244699.html