当前位置:首页 > PHP教程 > php数组 > 列表

PHP中你必须了解的4种Array函数

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-09 10:29:52 浏览: 评论:0 

在日常的开发中foreach是我们用的最多的语法,但是有很多地方是不需要foreach就可以完成,而且比foreach更快。所以本篇文章给大家带来array_filter(),array_map(),array_walk(),array_reduce()这四个数组操作函数。只要学会了这四个函数我们在开发中就不用去写那么多循环操作了,而且效率比循环取值更快。

array_filter()

  1. $arr = ['a',0,'b','c',1,2,3,4,5,6,7]; 
  2.  
  3. //过滤掉所有的数字,只要字符串  减少自己循环的必要 
  4.  
  5. $new_arr = array_filter($arr,function($v){ 
  6.  
  7.   if(is_string($v)){ 
  8.  
  9.     return $v
  10.  
  11.   } 
  12.  
  13. }); 
  14.  
  15. print_r($new_arr); 
  16.  
  17. //返回结果 
  18.  
  19. // Array ( [0] => a [2] => b [3] => c ) 

array_map()

  1. $arr1 = [1,2,3,4,5]; 
  2.  
  3. $arr2 = [6,7,8,9,10,55]; 
  4.  
  5. //函数写前面,数组参数写后面   2个数组的计算,也不需要自己循环计算 
  6.  
  7. $new_arr = array_map(function($val1,$val2){ 
  8.  
  9.    return $val1 + $val2
  10.  
  11. },$arr1,$arr2); 
  12.  
  13.    
  14.  
  15. var_dump($new_arr); 
  16.  
  17. //返回结果 
  18.  
  19. //array (size=5) 
  20.  
  21. //  0 => int 7 
  22.  
  23. //  1 => int 9 
  24.  
  25. //  2 => int 11 
  26.  
  27. //  3 => int 13 
  28.  
  29. //  4 => int 15 
  30.  
  31. //  5 => int 55 
  32.  
  33.    
  34.  
  35. //将数组中的元素用于某种操作 
  36.  
  37. $arr = ['a','b','c','d','e','f',8]; 
  38.  
  39. array_walk($arr,function($val,$key){ 
  40.  
  41.     echo "{$key} is {$val} <br/>"
  42.  
  43. }); 
  44.  
  45. //返回结果 
  46.  
  47. // 0 is a  
  48.  
  49. // 1 is b  
  50.  
  51. // 2 is c  
  52.  
  53. // 3 is d  
  54.  
  55. // 4 is e  
  56.  
  57. // 5 is f  
  58.  
  59. // 6 is 8 

array_walk()

  1. $arr = ['a',0,'b','c',1,2,3,4,5,6,7]; 
  2.  
  3. //改变数组中的值,传参的时候使用引用   同意加个连接符3 
  4.  
  5. array_walk($arr,function(&$val,$key){ 
  6.  
  7.     $val = $val . 3; 
  8.  
  9. }); 
  10.  
  11. var_dump($arr); 
  12.  
  13. // array (size=7) 
  14.  
  15. // 0 => string 'a3' (length=2) 
  16.  
  17. // 1 => string 'b3' (length=2) 
  18.  
  19. // 2 => string 'c3' (length=2) 
  20.  
  21. // 3 => string 'd3' (length=2) 
  22.  
  23. // 4 => string 'e3' (length=2) 
  24.  
  25. // 5 => string 'f3' (length=2) 
  26.  
  27. // 6 => string '83' (length=2) 

array_reduce()

  1. //一个数组求和,还可以给第三个参数,作为第一个值 
  2.  
  3. $array = [10,15,20,60]; 
  4.  
  5. $as = array_reduce($array,function($k,$v){   
  6.  
  7.     print_r('k:'.$k); echo "<br/>"
  8.  
  9.     print_r('v:'.$v); echo "<br/>";  
  10.  
  11.     return $k + $v
  12.  
  13. },50); 
  14.  
  15. print_r('总计:'.$as); 
  16.  
  17. // k:50 
  18.  
  19. // v:10 
  20.  
  21. // k:60 
  22.  
  23. // v:15 
  24.  
  25. // k:75 
  26.  
  27. // v:20 
  28.  
  29. // k:95 
  30.  
  31. // v:60 
  32.  
  33. // 总计:155echo "<br/>";

Tags: Array

分享到: