php 数组的处理,php数组之函数处理

1、array_reduce(

math?formula=arr%20%2C%20callablecallback ) 使用回调函数迭代地将数组简化为单一的值。其中

math?formula=arr%20%E4%B8%BA%E8%BE%93%E5%85%A5%E6%95%B0%E7%BB%84%EF%BC%8Ccallback(

math?formula=result%20%2Cvalue)接受两个参数,

math?formula=result%E4%B8%BA%E4%B8%8A%E4%B8%80%E6%AC%A1%E8%BF%AD%E4%BB%A3%E4%BA%A7%E7%94%9F%E7%9A%84%E5%80%BC%EF%BC%8Cvalue是当前迭代的值。

//数组求和

$arr = [1,2,3,4,5];

$sum = array_reduce($arr, function($result, $value){

return $result+$value;

});

echo $sum;

//字符串拼接

$arr = [

['id'=>1,'name'=>"c"],

['id'=>2,'name'=>"b"],

['id'=>3,'name'=>"a"]

];

$str = array_reduce($arr, function($result, $value){

return $result.",".$value['id'];

});

echo $str;

2、array_map(callback

math?formula=callback%20%2Carr) 返回用户自定义函数作用后的数组。回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

向array_map传入数组,出来的还是数组,而不是上面array_reduce()的一个值。所以,array_map()最简单的就是把callback函数作用到每个数组的值上,最常见的场景就是 intval()、trim() 数组中的值.

$arr = array('2','3','4','5');

array_map('intval' , $arr);

array_map('htmlspecialchars' , $arr);

3、array_walk() 函数对数组中的每个元素应用用户自定义函数。在函数中,数组的键名和键值是参数。处理二维数组用array_walk_recursive函数。

$arr = ["aa", "bb"];

array_walk($arr, function(&$item){

$item = $item."ppp";

return $item;

});

var_dump($arr); //["aappp","bbppp"]

4、array_filter ( array

math?formula=array%20%5B%2C%20callablecallback [, int $flag = 0 ]] ) 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。

array_filter会过滤掉任何值等于FALSE的值,也就是说 0值,空字符串,null,都会被过滤。

$arr = array(1,2,3,'aaa'=>4,5);

$newArr = array_filter($arr,function($val) {

if ($val%2 == 0) {

return false;

}

return true;

});

var_dump($newArr); //[1,3,5]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值