解析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面向对象全攻略 (二) 实例化对象 使用对象成员
Sep 30 PHP
PHP字符串处理的10个简单方法
Jun 30 PHP
PHP中去掉字符串首尾空格的方法
May 19 PHP
支持生僻字且自动识别utf-8编码的php汉字转拼音类
Jun 27 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
PHP获取音频文件的相关信息
Jun 22 PHP
php时间计算相关问题小结
May 09 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
May 21 PHP
php 后端实现JWT认证方法示例
Sep 04 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(1)
2006/10/09 PHP
php 接口类与抽象类的实际作用
2009/11/26 PHP
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
图文介绍PHP添加Redis模块及连接
2015/07/28 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
Extjs4中Form的使用之本地hiddenfield
2013/11/26 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
JavaScript使用DeviceOne开发实战(二) 生成调试安装包
2015/12/01 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
浅析Ajax语法
2016/12/05 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
Python简单计算数组元素平均值的方法示例
2017/12/26 Python
Python从ZabbixAPI获取信息及实现Zabbix-API 监控的方法
2018/09/17 Python
python xpath获取页面注释的方法
2019/01/14 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
python网络编程socket实现服务端、客户端操作详解
2020/03/24 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
2020/04/20 Python
Python3爬虫中关于Ajax分析方法的总结
2020/07/10 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
广州一家公司的.NET面试题
2016/06/11 面试题
小学运动会表扬稿
2014/01/19 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
《坐井观天》教学反思
2016/02/18 职场文书
创业计划书之家教托管
2019/09/25 职场文书
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技