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 相关文章推荐
PHP自动更新新闻DIY
Oct 09 PHP
一个简单的自动发送邮件系统(一)
Oct 09 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
深入PHP empty(),isset(),is_null()的实例测试详解
Jun 06 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php环境套包 dedeampz 伪静态设置示例
Mar 26 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
laravel 5 实现模板主题功能(续)
Mar 02 PHP
php实现简单的MVC框架实例
Sep 23 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
May 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
Cappuccino 卡布其诺咖啡之制作
2021/03/03 冲泡冲煮
加强版phplib的DB类
2008/03/31 PHP
php生成excel文件的简单方法
2014/02/08 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
js实现从中间开始往上下展开网页窗口的方法
2015/03/02 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
npm配置国内镜像资源+淘宝镜像的方法
2018/09/07 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
js中实现继承的五种方法
2021/01/25 Javascript
Vue2.x-使用防抖以及节流的示例
2021/03/02 Vue.js
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
python保存网页图片到本地的方法
2018/07/24 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python3中eval函数用法使用简介
2019/08/02 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
python argparse模块通过后台传递参数实例
2020/04/20 Python
Python 发送邮件方法总结
2020/08/10 Python
从当地商店送来的杂货:Instacart
2018/08/19 全球购物
湖南卫视在线视频媒体平台:芒果TV
2019/10/30 全球购物
Linux内核产生并发的原因
2012/07/13 面试题
操行评语大全
2014/04/30 职场文书
工伤事故证明
2014/10/20 职场文书
学生检讨书范文
2015/01/27 职场文书
2015年教导处教学工作总结
2015/07/22 职场文书
小学英语教学反思范文
2016/02/15 职场文书
创业方案:赚钱的烧烤店该怎样做?
2019/07/05 职场文书