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删除字符串末尾子字符,删除开始字符,删除两端字符(实现代码)
Jun 27 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
ThinkPHP CURD方法之limit方法详解
Jun 18 PHP
ThinkPHP验证码和分页实例教程
Aug 22 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
php创建和删除目录函数介绍和递归删除目录函数分享
Nov 18 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHP中include()与require()的区别说明
Feb 14 PHP
php用wangeditor3实现图片上传功能
Aug 22 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
laravel框架实现敏感词汇过滤功能示例
Feb 15 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获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
2009/10/11 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
mysqli_set_charset和SET NAMES使用抉择及优劣分析
2013/01/13 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php单例模式实现方法分析
2015/03/14 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
sencha touch 模仿tabpanel导航栏TabBar的实例代码
2013/10/24 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
jquery中交替点击事件toggle方法的使用示例
2013/12/08 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
JavaScript实现动态创建CSS样式规则方案
2014/09/06 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
canvas实现刮刮卡效果
2017/03/14 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
浅谈Layui的eleTree树式选择器使用方法
2019/09/25 Javascript
JS document form表单元素操作完整示例
2020/01/13 Javascript
[01:03:36]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第二场 1月26日
2021/03/11 DOTA
python基础教程之Filter使用方法
2017/01/17 Python
python 类对象和实例对象动态添加方法(分享)
2017/12/31 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python openpyxl模块实现excel读写操作
2020/06/30 Python
如何利用find命令查找文件
2016/11/18 面试题
甜品店创业计划书
2014/08/14 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
个人思想政治总结
2015/03/05 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
大学生入党群众意见书
2015/06/02 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
简单谈谈Python面向对象的相关知识
2021/06/28 Python
Nginx利用Logrotate实现日志分割
2022/05/20 Servers