logo
当前位置:首 页 > 编程技术 >后端开发 >PHP语言 > 查看文章

array_filter()
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回结果数组中。数组键名保持不变。

 

  1. $arr = ['a','b',1,2,3];
  2.  
  3. $new_arr = array_filter($arr,function($val){
  4. return is_numeric($val);
  5. });
  6.  
  7. var_dump($new_arr);
  8. //返回结果
  9. //array (size=3)
  10. // 2 => int 1
  11. // 3 => int 2
  12. // 4 => int 3

 

array_map()
该函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组。
可以传递多个数组,回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

 

  1. $arr1 = [1,2,3,4,5];
  2. $arr2 = [6,7,8,9,10];
  3.  
  4. //函数写前面,数组参数写后面
  5. $new_arr = array_map(function($val1,$val2){
  6. return $val1 + $val2;
  7. },$arr1,$arr2);
  8.  
  9. var_dump($new_arr);
  10. //返回结果
  11. //array (size=5)
  12. // 0 => int 7
  13. // 1 => int 9
  14. // 2 => int 11
  15. // 3 => int 13
  16. // 4 => int 15

array_walk()
对数组中的每个元素应用用户自定义函数

  1. //将数组中的元素用于某种操作
  2. $arr = ['a','b','c'];
  3. array_walk($arr,function($val,$key){
  4. echo "{$key} is {$val} <br/>";
  5. });
  6. //返回结果
  7. //0 is a
  8. //1 is b
  9. //2 is c
  10.  
  11. //改变数组中的值,传参的时候使用引用
  12. array_walk($arr,function(&$val,$key){
  13. $val .= $val;
  14. });
  15. var_dump($arr);
  16. //array (size=3)
  17. // 0 => string 'aa' (length=2)
  18. // 1 => string 'bb' (length=2)
  19. // 2 => string 'cc' (length=2)

 

异同点
array_filter() 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时,返回过滤后的数组
array_map() 重点在于遍历一个数组或多个数组的元素,返回一个新的数组
array_walk() 重点在于遍历数组进行某种操作

array_filter() 和 array_walk()对一个数组进行操作,数组参数在前,函数参数在后
array_map() 可以处理多个数组,因此函数参数在前,数组参数在后,可以根据实际情况放入多个数组参数

 

 

 

 

 

 

 

 

 

说说梦想,谈谈感悟 ,聊聊技术,有啥要说的来github留言吧 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3