PHP中array_map与array_column之间的关系分析


Posted in PHP onAugust 19, 2014

本文以实例形式分析了PHP中array_map与array_column之间的关系,具体分析如下:

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,返回的数组中 对应键 为input数组值index_key对应的值。

示例代码一:

$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才能让你更灵活,不过优先使用系统函数总是首选的。

PHP 相关文章推荐
简单介绍下 PHP5 中引入的 MYSQLI的用途
Mar 19 PHP
php fckeditor 调用的函数
Jun 21 PHP
PHP 一个比较完善的简单文件上传
Mar 25 PHP
PHP面向对象——访问修饰符介绍
Nov 08 PHP
linux中cd命令使用详解
Jan 08 PHP
PHP SOCKET编程详解
May 22 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
PHP创建word文档的方法(平台无关)
Mar 29 PHP
php mysql 封装类实例代码
Sep 18 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
Nov 20 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
Apr 10 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 #PHP
PHP防止表单重复提交的几种常用方法汇总
Aug 19 #PHP
PHP中单引号与双引号的区别分析
Aug 19 #PHP
php版本的cron定时任务执行器使用实例
Aug 19 #PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 #PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 #PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 #PHP
You might like
PHP 文件扩展名 获取函数
2009/06/03 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
2017/02/04 PHP
php实现往pdf中加数字签名操作示例【附源码下载】
2018/08/07 PHP
javascript函数库-集合框架
2007/04/27 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
小程序页面动态配置实现方法
2019/02/05 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
浅谈Python的垃圾回收机制
2016/12/17 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
python处理csv中的空值方法
2018/06/22 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
详解Python requests 超时和重试的方法
2018/12/18 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
python中metaclass原理与用法详解
2019/06/25 Python
浅析CSS3 中的 transition,transform,translate之间区别和作用
2020/03/26 HTML / CSS
html5中audio支持音频格式的解决方法
2018/08/24 HTML / CSS
德国最大的拼图在线商店:Puzzle.de
2016/12/17 全球购物
好药师网上药店:安全合法的网上药品零售药房
2017/02/15 全球购物
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
yy婚礼主持词
2014/03/14 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
2014年残联工作总结
2014/11/21 职场文书
初中中等生评语
2014/12/29 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
紫日观后感
2015/06/05 职场文书
网吧温馨提示
2015/07/17 职场文书
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android