array_map与array_column之间的关系
2015-08-14 17:11
555 查看
/*
|----------------------------------------------------------
|array_map();将回调函数作用到给定数组的单元上
|array_column();快速实现:将二维数组转为一维数组
|----------------------------------------------------------
*/
在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的 值与值 对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。
Link: /article/5289360.html
|----------------------------------------------------------
|array_map();将回调函数作用到给定数组的单元上
|array_column();快速实现:将二维数组转为一维数组
|----------------------------------------------------------
*/
例一: $records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) ); $first_names = array_column($records, 'first_name'); print_r($first_names); /* 输出: Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter ) */
例二: $last_names = array_column($records, 'last_name', 'id'); print_r($last_names); /* 输出: Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe ) */
当没有array_column()函数情况下, //使用array_map()实现例一: $a = array_map(function($element){ //$records作为参数传入回调函数 return $element['last_name']; //返回数组元素值的last_name对应值 }, $records); //array_map返回数组,相当于把每个$element['last_name']存入新数组,所以是新建的索引
//使用foreach实现例一: foreach($records as $v) { $b[] = $v['last_name']; }
//使用foreach实现例二: $c = array(); foreach($records as $k=>$v) { $c += array($v['id']=>$v['last_name']); //使用+运算符, 以追加的形式(不改变原数组索引), 合并组装的数组 } //若使用array_merge,数字键名将被重新编号
在取出的多条数据中,典型的二维数组,如果需要使用数据中单一的 值与值 对应的情况,array_column()即可完成,但是面对较复杂的数组结构,foreach才能让你更灵活,不过优先使用系统函数总是首选的。
Link: /article/5289360.html
相关文章推荐
- CodeForces 348B Apple Tree
- Apache服务无法启动问题排查
- 计算逆矩阵需要注意的问题
- lamp+nginx代理+discuz+wordpress+phpmyadmin
- Codeforces Round #316 (Div. 2)
- 堆,栈,静态存储区的理解
- hihernate
- 网易2014校园招聘杭州Java笔试题
- Jqgrid 底部合计功能
- [转](转载)vs2008debug版找不到mfc90d.dll
- 第一篇博客(无他,只是自己打算写博客的感受)
- 线程之任务列表
- Android震动vibrator系统开发全过程
- Largest Number
- mac搭建android开发环境
- [leetcode-135]Candy(java)
- gridview动态添加行
- 查找SQL Server Blocking进程
- sqlserver 数据库修复
- hadoop(1):centos 安装 hadoop & hive