解析PHP之提取多维数组指定列的方法


Posted in PHP onJanuary 03, 2017

前言:有时候在开发中会遇到这样的问题,我们需要把有规律的多维数组按照纵向(列)取出,有下面的方法可用:

我们将拿下面的数组来处理:

$arr = array(
  '0' => array('id' => 1, 'name' => 'name1'),
  '1' => array('id' => 2, 'name' => 'name2'),
  '2' => array('id' => 3, 'name' => 'name3'),
  '3' => array('id' => 4, 'name' => 'name4'),
  '4' => array('id' => 5, 'name' => 'name5'),
);

//需要得到的结果:$name_list = array('name1', 'name2', 'name3', 'name4', 'name5');

1、使用array_column()

PHP在5.5.0版本之后,添加了一个专用的函数array_column()

方法:

$name_list = array_column($arr, 'name');

2、array_walk()方法

array_walk()使用用户自定义函数对数组中的每个元素做回调处理

$name_list = array();
array_walk($arr, function($value, $key) use (&$name_list ){
$name_list [] = $value['name'];
});

3、array_map()方法

array_map()函数和array_walk() 作用类似,将回调函数作用到给定数组的单元上

$name_list = array();
 array_map(function($value) use (&$name_list){
   $name_list[] = $value['name'];
 }, $arr);

4、foreach循环遍历方法

foreach()循环相对上面的方法效率稍微低一些

$name_list = array();
 foreach ($arr as $value) {
   $name_list[] = $value['name'];
 }

5、array_map变种

把$arr数组的每一项值的开头值移出,并获取移除的值作为新数组。注意此时新数组$name_list的键仍是原数组$arr的键

$name_list = array_map('array_shift', $arr);
 //注意:该功能会获取$arr中的 id 列,而不是name 列。
 //另外,如果需要获取二维数组每一项的开头列或结尾列,也可以这样做:
 
 $name_list = array_map('reset', $arr);
 $name_list = array_map('end', $arr);
 
 //这三个变种方法作用比较局限,仅在获取第一列或最后一列的时候有用,在
 //复杂的数组中就难以发挥作用了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
Apache+php+mysql在windows下的安装与配置图解(最新版)
Nov 30 PHP
php和jquery实现地图区域数据统计展示数据示例
Feb 12 PHP
PHP引用(&)各种使用方法实例详解
Mar 20 PHP
基于命令行执行带参数的php脚本并取得参数的方法
Jan 25 PHP
基于PHP实现等比压缩图片大小
Mar 04 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
php使用imagecopymerge()函数创建半透明水印
Jan 25 PHP
PHP7中I/O模型内核剖析详解
Apr 14 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
Apr 05 PHP
PHP实现RTX发送消息提醒的实例代码
Jan 03 #PHP
php cookie用户登录的详解及实例代码
Jan 03 #PHP
详解PHP安装mysql.so扩展的方法
Dec 31 #PHP
php 从一个数组中随机的取出若干个不同的数实例
Dec 31 #PHP
PHP文件操作详解
Dec 30 #PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 #PHP
CI框架实现框架前后端分离的方法详解
Dec 30 #PHP
You might like
PHP 函数语法介绍一
2009/06/14 PHP
Yii2实现UploadedFile上传文件示例
2017/02/15 PHP
php框架知识点的整理和补充
2021/03/01 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
csdn 批量接受好友邀请
2009/02/19 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
JavaScript Function函数类型介绍
2015/04/08 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
js对象浅拷贝和深拷贝详解
2016/09/05 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
基于JavaScript实现屏幕滚动效果
2017/01/18 Javascript
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
[01:53]2016完美“圣”典风云人物:Maybe专访
2016/12/05 DOTA
python实现mysql的单引号字符串过滤方法
2015/11/14 Python
python利用dir函数查看类中所有成员函数示例代码
2017/09/08 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python字典的核心底层原理讲解
2019/01/24 Python
Python 根据数据模板创建shapefile的实现
2019/11/26 Python
Python random库使用方法及异常处理方案
2020/03/02 Python
python模拟斗地主发牌
2020/04/22 Python
澳大利亚足球鞋和服装购物网站:Ultra Football
2018/10/11 全球购物
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
请介绍一下WSDL的文档结构
2013/03/17 面试题
设计专业毕业生求职信
2014/06/25 职场文书
高三复习计划
2015/01/19 职场文书
科技馆观后感
2015/06/08 职场文书
Python连接Postgres/Mysql/Mongo数据库基本操作大全
2021/06/29 Python
CSS基础详解
2021/10/16 HTML / CSS
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python