解析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 相关文章推荐
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
关于使用coreseek并为其做分页的介绍
Jun 21 PHP
IIS下PHP的三种配置方式对比
Nov 20 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
Mar 18 PHP
PHP5.2中PDO的简单使用方法
Mar 25 PHP
Docker配置PHP开发环境教程
Dec 21 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
php注册审核重点解析(数据访问)
May 23 PHP
PHP设计模式之装饰器模式实例详解
Feb 07 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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绘图之在图片上写中文和英文的方法
2015/01/24 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
js获取当前路径的简单示例代码
2014/01/08 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
JavaScript对数组进行随机重排的方法
2015/07/22 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
Javascript实现跑马灯效果的简单实例
2016/05/31 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
[02:39]我与DAC之Newbee.Moogy:从论坛到TI
2018/03/26 DOTA
python登录pop3邮件服务器接收邮件的方法
2015/04/30 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
python如何对实例属性进行类型检查
2018/03/20 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
10个Python小技巧你值得拥有
2018/09/29 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
Django之路由层的实现
2019/09/09 Python
django在保存图像的同时压缩图像示例代码详解
2020/02/11 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
static关键字的用法
2013/10/07 面试题
介绍一下Linux文件的记录形式
2013/09/29 面试题
马智宇婚礼主持词
2014/03/22 职场文书
《长相思》听课反思
2014/04/10 职场文书
敬老院标语
2014/06/27 职场文书
公司人事专员岗位职责
2014/08/11 职场文书
申报优秀教师材料
2014/12/16 职场文书
人民检察院起诉书
2015/05/20 职场文书
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python