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之第六天
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
mysql5的sql文件导入到mysql4的方法
Oct 19 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
php图片缩放实现方法
Feb 20 PHP
YII框架中搜索分页jQuery写法详解
Dec 19 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
PHP实现的装箱算法示例
Jun 23 PHP
Laravel核心解读之异常处理的实践过程
Feb 24 PHP
laravel excel 上传文件保存到本地服务器功能
Nov 14 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
ecshop实现smtp发送邮件
2015/02/03 PHP
php生成图片验证码
2015/06/09 PHP
php7 错误处理机制修改实例分析
2020/05/25 PHP
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
Node.js的特点详解
2017/02/03 Javascript
js实现tab切换效果
2017/02/16 Javascript
js中DOM三级列表(代码分享)
2017/03/20 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
详解NODEJS基于FFMPEG视频推流测试
2017/11/17 NodeJs
分析JS中this引发的bug
2017/12/12 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
给Python IDLE加上自动补全和历史功能
2014/11/30 Python
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
python3实现暴力穷举博客园密码
2016/06/19 Python
python3结合openpyxl库实现excel操作的实例代码
2018/09/11 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
Python PyCharm如何进行断点调试
2019/07/05 Python
Python collections模块使用方法详解
2019/08/28 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
matplotlib 范围选区(SpanSelector)的使用
2021/02/24 Python
HTML5中meta属性的使用方法
2016/02/29 HTML / CSS
瑞典快乐袜子:Happy Socks
2018/02/16 全球购物
Gtech官方网站:地毯清洁器、吸尘器及园艺设备
2018/05/23 全球购物
机电专业体育教师求职信
2013/09/21 职场文书
毕业证丢失证明
2014/01/15 职场文书
应聘销售主管的求职信
2014/04/26 职场文书
2014年移动公司工作总结
2014/12/08 职场文书