标签:php 函数 数组 array
在日常的开发中
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中文网其它相关文章
标签:php,函数,数组,array,
来源: https://www.php.cn/php-weizijiaocheng-448210.html
本站声明:
1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。