PHP array_map()】的更多相关文章

http://camnpr.com/php-python/1715.html 巧用array_map()和array_reduce()替代foreach循环…
定义和用法 array_map() 函数返回用户自定义函数作用后的数组.回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致. 语法 array_map(function,array1,array2,array3...) 参数 描述 function 必需.用户自定义函数的名称,或者是 null. array1 必需.规定数组. array2 可选.规定数组. array3 可选.规定数组. 例子 1  <?php function myfunction($v) { i…
详细的介绍如下: PHP数组函数: array_walk() PHP数组函数: array_map() 实际应用中的一点区别与总结: array_walk() 主要用于对某个数组的迭代,相当于 foreach: array_map() 主要是根据某个/某几个数组产生一个新的数组,常应用于递归效果!…
/** * array_filter 用回调函数处理数组中的各个元素, * 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时, * 如果返回了false,那么这个元素将会被过滤掉.PS:保持了原来的索引. */$arr = array(1,2,3,'aaa'=>4,5); $newArr = array_filter($arr,function($val) { if ($val == 3) { return false; // 返回false 这个元素将要被过滤掉 } return tr…
/*|----------------------------------------------------------|array_map();将回调函数作用到给定数组的单元上|array_column();快速实现:将二维数组转为一维数组|----------------------------------------------------------*/ 例一: $records = array( array( 'id' => 2135, 'first_name' => 'John'…
/*函数array_map()函数:多数组回调函数---将回调函数作用到给定数组的单元上 * 1.语法:array array_map ( callback callback, array arr1 [, array ...] ) * 2.描述:返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的 * 单元.callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致. * 3.注意事项: * 3.1.多数组回调函数作用于一个数组时,…
array_map()与arra_shift()搭配使用,还是来看例子吧,比较直观一点 <?php $user = array( 0 => array( 'name' => '张三', 'id' => 1, 'email' => 'zhangsan@sina.com', ), 7 => array( 'name' => '李四', 'id' => 2, 'email' => 'lisi@163.com', ), 9 => array( 'name…
1.array_reduce( $arr , callable $callback ) 使用回调函数迭代地将数组简化为单一的值. 其中$arr 为输入数组,$callback($result , $value)接受两个参数,$result为上一次迭代产生的值,$value是当前迭代的值. 使用array_reduce()替代foreach()循环最常用的一个业务场景也许就是数组求和,比如: $arr = array('1','2','3'); //计算数组中数字的和 $sum = 0; fore…
public static function objectToArray($d) { if (is_object($d)) { $d = get_object_vars($d); } if (is_array($d)) {  //数组中的每个值都通过当前函数处理(如果是多维数组相当于递归),这里都是原样返回(return $d) return array_map(array(__CLASS__, __FUNCTION__), $d); } else { return $d; } } array_…
--------------------------------------------------------------------------------------------------------- /* |---------------------------------------------------------- |array_map();将回调函数作用到给定数组的单元上 |array_column();快速实现:将二维数组转为一维数组 |-----------------…
array_walk 有个原生递归函数 array_walk_recursive($arr, 'function', 'words'),但是 array_map 却没有对应的递归函数 array_map_recursive,我们可以自定义一个: function array_map_recursive($filter, $data) { $result = array(); foreach ($data as $key => $val) { $result[$key] = is_array($v…
array_map(function($v){return $v+1;}, $array); array_walk($array, function($v, $k){...}); array_filter($array, function($v){return true;}); 以上三者 相同点 都是利用回调函数对数组中每个元素进行操作. 不同点 返回值,回调函数的参数,是否改变数组的值 三个方面.  array_map 返回的是新数组,即原数组不变.  array_walk 返回的布尔值,如果…
申请一个数组,然后不断的跑空循环,看看执行时间 for循环 foreach (不使用键) foreach(使用键) array_map array_walk 查看效率速度发现很明显 是foreach更快,这是为什么呢,我记得韩顺平老师讲过 foreach比for循环快的原因是因为foreach内部用链表存储,所以移动起来更快,而array_map array_walk显然封装过扩展,没有底层快的.当不使用key的时候 foreach要快一倍,也就告诉我们今后用数组如果不需要用到key的时候尽量不…
  array_walk 主要是要对数组内的每个值进行操作,操作结果影响原来的数组 array_map主要是对数组中的值进行操作后返回数组,以得到一个新数组 wallk 可以没有返回值 map要有,因为要填充数组 $array = array('AAA', 'bbb'); $map_array = array_map('strtolower', $array); print_r($map_array); print_r($array); //如果回调函数需要直接作用于数组中的值,可以将回调函数的…
PHP array_map() 函数 将函数作用到数组中的每个值上,每个值都乘以本身,并返回带有新值的数组: <?php function myfunction($v) { return($v*$v); } $a=array(1,2,3,4,5); print_r(array_map("myfunction",$a)); ?> $double = function($a) { return $a * 2; }; $numbers = range(1, 5); $new_nu…
不同情境下替换foreach,且效果更佳 array_map  遍历原数组,array_map()参数中有几个数组,自定义函数就接收几个参数, 在每个值上进行自定义函数处理,具有返回值,需要一个新数组来接收经过自定义函数处理的新数组 public function test($request) { $aa = array('aa', 'bb'); $bb = array_map(function($item) { $item = $item . 'aa' ; return $item; }, $…
php数组array_filter函数和array_slice函数:<?php /* array_filter()用回调函数过滤数组中的单元 array_filter(array,function) 参数描述:如果自定义过滤函数返回 true,则被操作的数组的当前就会被包含在返回的结果数组中, 并将结果组成一个新的数组,如果原数组是一个关联数组,键名保持不变. */ function delEmpty($val) { <?php $arr = [1,2,3,4,false,null,'',fa…
<?php $arr=array( 1,2,3,4,5,6 ); function filter($var){ if($var%2==0) return true; } $data=array_filter($arr,"filter"); $data=array(2,4,6); ?> <?php $arr1=array('linux','Php','JAVA'); array_map('strtoupper',$arr1); ?>…
array_map(): 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致. 3.提示:您可以向函数输入一个或者多个数组. 若相函数输入2个数组,其函数接受参数也应该有两个,map给函数传值时,是每次从两个数组中分别取一个传给函 数.即多个数组之间是同步提交的,不是提交完一个数组再提交下一个 提交几个…
1.array_walk是用于用户自定义的函数,所以想用array_walk($aIds, "trim");去掉数据元素中的空格是达不到目的的只能用array_walk($aIds, create_function('&$val', '$val = trim($val);')); 2.想完成上边的需求其实更加合适用$aNewIds = array_map("trim", $aIds);来实现.   与array_walk不一样,array_map的参数是值,…
1.array_walk是用于用户自定义的函数,所以想用array_walk($aIds, "trim");去掉数据元素中的空格是达不到目的的只能用array_walk($aIds, create_function('&$val', '$val = trim($val);')); 2.想完成上边的需求其实更加合适用$aNewIds = array_map("trim", $aIds);来实现.   与array_walk不一样,array_map的参数是值,…
array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现:将二维数组转为一维数组 array_column()函数格式为: array array_column ( array $input , mixed $column_key [, mixed $index_key ] ); 返回input数组中值为column_key的列; 如果指定了可选参数index_key,返回的数组中 对应键 为i…
1.array_reduce( $arr , callable $callback ) 使用回调函数迭代地将数组简化为单一的值. 其中$arr 为输入数组,$callback($result , $value)接受两个参数,$result为上一次迭代产生的值,$value是当前迭代的值. 使用array_reduce()替代foreach()循环最常用的一个业务场景也许就是数组求和,比如: $arr = array('1','2','3'); //计算数组中数字的和 $sum = 0; fore…
这几个方法都有遍历数组,操作的过程. 很容易搞混.尤其很多人养成的编程习惯都是使用foreach来循环遍历.. 就举个简单例子. $a = array( 0,1,2,3,4,5,6,7,8,9 ); function filter($v){ return $v == 0 ? true :false; } function map($v){ return $v == 0 ? 0 : 10; } // array_walk函数中,如果想直接作用于数组中的值,可以把$v,写成引用形式&$v funct…
一.array_map() 1.array_map() 函数将用户自定义函数作用到数组中的每个值上,并返回用户自定义函数作用后的带有新值的数组,若函数作用后无返回值,则对应的新值数组中为空. 2.回调函数接受的参数数目应该和传递给 array_map() 函数的数组数目一致. 3.提示:您可以向函数输入一个或者多个数组. 若相函数输入2个数组,其函数接受参数也应该有两个,map给函数传值时,是每次从两个数组中分别取一个传给函数.即多个数组之间是同步提交的,不是提交完一个数组再提交下一个提交几个数…
array_map — Applies the callback to the elements of the given arrays (处理映射) array_filter — Filters elements of an array using a callback function      (过滤) <?phpfunction cube($n){    return($n * $n * $n);} $a = array(1, 2, 3, 4, 5);$b = array_map("…
1,php_sapi_name() php_sapi_name返回web服务器和php之间的接口类型.函数说明: string php_sapi_name(void) 返回描述php所使用的接口类型的小写字符串,例如CLI的php下这个字符串是“cli“,Apache下可能会有几个不同的值,取决于使用的SAPI. 实例: <?php $sapi_type = php_sapi_name(); if (substr($sapi_type, 0, 3) == 'cgi') { echo "Yo…
<?php /** * 9 数组 each list array_map array_walk array_walk_recursive */ //each() 返回数组中的键名和键值生成新数组,如果指针结束,返回布尔值false /* $array1=array('webname'=>"博客",'weburl'=>"bbs.blog.com"); $array_new=each($array1); //生成新的数组: print_r($array…
两个函数的共性和区别: 1.传入这两个函数的 $value,就是数组中的单一个元素. 2.array_walk() 仅返回true或者false,array_map() 返回处理后的数组: 3.要得到处理后的元素值,array_walk() 需要在传入参数值加 & 引用符号,array_map() 则需要return返回. 具体使用方法,参考:http://www.cnblogs.com/wxdblog/p/8619177.html…
(PHP 5 >= 5.5.0) array_map()与array_column()用法如下: array_map();将回调函数作用到给定数组的单元上array_column();快速实现:将二维数组转为一维数组 array_column()函数格式为: array array_column ( array $input , mixed $column_key [, mixed $index_key ] ); 返回input数组中值为column_key的列; 如果指定了可选参数index_…