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实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
php中对2个数组相加的函数
Jun 24 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
Jul 03 PHP
php开发留言板的CRUD(增,删,改,查)操作
Apr 19 PHP
php mysql_real_escape_string函数用法与实例教程
Sep 30 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
Windows下编译PHP5.4和xdebug全记录
Apr 03 PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 PHP
详解json在php中的应用
Sep 30 PHP
thinkphp3.2同时连接两个数据库的简单方法
Aug 13 PHP
在Laravel中使用MongoDB的方法示例
Nov 11 PHP
php libevent 功能与使用方法详解
Mar 04 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缓冲 output_buffering的使用详解
2013/06/13 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP实现的英文名字全拼随机排号脚本
2014/07/04 PHP
php测试kafka项目示例
2020/02/06 PHP
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
javascript中的正则表达式使用指南
2015/03/01 Javascript
常见JS验证脚本汇总
2015/12/01 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
Json对象和字符串互相转换json数据拼接和JSON使用方式详细介绍(小结)
2016/10/25 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
Vue组件开发技巧总结
2018/03/04 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
详解Python的Django框架中的中间件
2015/07/24 Python
python实现二维插值的三维显示
2018/12/17 Python
flask 实现token机制的示例代码
2019/11/07 Python
Python Pickle 实现在同一个文件中序列化多个对象
2019/12/30 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
模具设计与制造专业应届生求职信
2013/10/18 职场文书
学习十八大精神心得体会
2013/12/31 职场文书
办理护照介绍信
2014/01/16 职场文书
网络研修随笔感言
2014/02/17 职场文书
签约仪式主持词
2014/03/19 职场文书
学习党章的体会
2014/11/07 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
检讨书格式范文
2015/05/07 职场文书
如何利用python实现Simhash算法
2022/06/28 Python