解析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脚本[带参数]的方法
Jan 22 PHP
phpmyadmin 常用选项设置详解版
Mar 07 PHP
wamp下修改mysql访问密码的解决方法
May 07 PHP
2个比较经典的PHP加密解密函数分享
Jul 01 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
phpmailer简单发送邮件的方法(附phpmailer源码下载)
Jun 13 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
php compact 通过变量创建数组
Nov 15 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 PHP
PHP实现生成数据字典功能示例
May 24 PHP
php fread函数使用方法总结
May 28 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学习资源和链接.
2006/12/05 PHP
一个比较简单的PHP 分页分组类
2009/12/10 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php URL跳转代码 减少外链
2011/06/25 PHP
PHP得到某段时间区间的时间戳 php定时任务
2012/04/12 PHP
php处理文件的小例子(解压缩,删除目录)
2013/02/03 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
2013/06/03 PHP
解析php中const与define的应用区别
2013/06/18 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP读取配置文件类实例(可读取ini,yaml,xml等)
2015/07/28 PHP
input 高级限制级用法
2009/03/26 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
2012/07/25 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
js操纵跨frame的三级联动select下拉选项实例介绍
2013/05/19 Javascript
JS解决ie6下png透明的方法实例
2013/08/02 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery实现鼠标经过弹出提示信息的地图热点效果
2015/08/07 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
js实现导航吸顶效果
2017/02/24 Javascript
vue 子组件向父组件传值方法
2018/02/26 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
vue在index.html中引入静态文件不生效问题及解决方法
2019/04/29 Javascript
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python 2与Python 3版本和编码的对比
2017/02/14 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
HTML5 MiranaVideo播放器 (代码开源)
2010/06/11 HTML / CSS
如何写出高性能的JSP和Servlet
2013/01/22 面试题
怎么写有吸引力的自荐信
2013/11/17 职场文书
通信工程专业毕业生推荐信
2013/12/25 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
个人评语大全
2014/05/04 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
使用Mysql计算地址的经纬度距离和实时位置信息
2022/04/29 MySQL