合纵连横,记录集超强处理函数array_column的升级
靓点:简化操作,array_walk批处理,引用,内耗小。应用场景:主要用来处理记录集(二维数组)1、整合结果集(一维数组,如ids:[1,3,4,5],获奖用户名清单:[熊明,lijia,二郎神])2、组
靓点:简化操作,array_walk批处理,引用,内耗小。
应用场景:主要用来处理记录集(二维数组)
1、整合结果集(一维数组,如ids:[1,3,4,5],获奖用户名清单:['熊明','lijia','二郎神'])
2、组合键值对(一维数组,如标签:array('mysql'=>'url1','php'=>'url2'])
3 、缓存文件数据(id=>info)
注意事项:php5.5版本以作为内置函数,使用前请注意命名冲突。
From(EQPHP工具类):https://github.com/eqphp/framework/blob/master/www/class/fun.php
演示作品:http://www.eqphp.com/blog/list/
应用场景:主要用来处理记录集(二维数组)
1、整合结果集(一维数组,如ids:[1,3,4,5],获奖用户名清单:['熊明','lijia','二郎神'])
2、组合键值对(一维数组,如标签:array('mysql'=>'url1','php'=>'url2'])
3 、缓存文件数据(id=>info)
注意事项:php5.5版本以作为内置函数,使用前请注意命名冲突。
From(EQPHP工具类):https://github.com/eqphp/framework/blob/master/www/class/fun.php
演示作品:http://www.eqphp.com/blog/list/
//处理记录集(php5.5内置) static function array_column($data,$key='id',$column=null){ $buffer=null; if ($column) { //k=>v if (strpos($column,',') === false) { foreach ($data as $value) { $buffer[$value[$key]]=$value[$column]; } return $buffer; } //k=arr $field=explode(',',$column); foreach ($data as $value) { $id=$value[$key]; array_walk($value,function ($v,$k) use (&$value,$field){ if (!in_array($k,$field)) unset($value[$k]); }); $buffer[$id]=$value; } return $buffer; } //id_arr foreach ($data as $value) { $buffer[]=$value[$key]; } return $buffer; } //用法demo: //原记录集: $data=array( array('id'=>1,'name'=>'dubox','age'=>25,'girlfriend'=>'苏打绿'), array('id'=>4,'name'=>'小春子','age'=>21,'girlfriend'=>'不知道'), array('id'=>9,'name'=>'白痴','age'=>71,'girlfriend'=>'寡妇'), ); $ids=array_column($data,'id'); //out: array(1,4,9); $info=array_column($data,'name','girlfriend'); //out: array('dubox'=>'苏打绿','小春子'=>'不知道','白痴'=>'寡妇'); $cache=array_column($data,'id','name,age,girlfriend'); //out: array( 1=>array('name'=>'dubox','age'=>25,'girlfriend'=>'苏打绿'), 4=>array('name'=>'小春子','age'=>21,'girlfriend'=>'不知道'), 9=>array('name'=>'白痴','age'=>71,'girlfriend'=>'寡妇'), );
- 上一篇:求两个目录的相对路径
- 下一篇:php不会正则的痛
精彩图集
精彩文章