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

array_filter()

$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()

$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()

$arr = ['a',0,'b','c',1,2,3,4,5,6,7];//改变数组中的值,传参的时候使用引用   同意加个连接符3array_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()

//一个数组求和,还可以给第三个参数,作为第一个值$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/>";

更多相关文章

  1. 使用PHP反射机制获取函数文档
  2. PHP中100个最常用的函数
  3. PHP使用Composer进行注册全局函数
  4. 【 callable-fake】虚构你的可调用函数以加速测试
  5. php如何去除空数组
  6. PHP中的危险函数你知道吗?
  7. PHP中的面向对象之构造函数详解
  8. php面向对象之析构函数和对象引用
  9. 构造函数在php中的使用方法(附示例)

随机推荐

  1. android中的sqlite数据库加密
  2. android source code online
  3. 在Android中使用Handler和Thread线程执行
  4. Android ImageView 总结【转载】
  5. Android ImageView图片显示点击背景切换
  6. android退出应用程序解决方案
  7. xmlns:android的作用
  8. Android定时器实现的几种方法
  9. Android 修改开机动画(bootanimation)
  10. Android 支持网络协议以及简单用法