解析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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
一个阿拉伯数字转中文数字的函数
Oct 09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
在PHP中利用wsdl创建标准webservice的实现代码
Dec 07 PHP
php中使用exec,system等函数调用系统命令的方法(不建议使用,可导致安全问题)
Sep 07 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
详解PHP中的Traits
Jul 29 PHP
全新Mac配置PHP开发环境教程
Feb 03 PHP
将PHP的session数据存储到数据库中的代码实例
Jun 24 PHP
thinkPHP实现签到功能的方法
Mar 15 PHP
php反射学习之不用new方法实例化类操作示例
Jun 14 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 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
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
深入php define()函数以及defined()函数的用法详解
2013/06/05 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
javascript阻止浏览器后退事件防止误操作清空表单
2013/11/22 Javascript
跟我学Nodejs(二)--- Node.js事件模块
2014/05/21 NodeJs
nodejs npm包管理的配置方法及常用命令介绍
2014/06/05 NodeJs
jQuery on方法传递参数示例
2014/12/09 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
Javascript设计模式之装饰者模式详解篇
2017/01/17 Javascript
用nodeJS搭建本地文件服务器的几种方法小结
2017/03/16 NodeJs
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
2017/11/28 Javascript
vuejs使用axios异步访问时用get和post的实例讲解
2018/08/09 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Python的一些用法分享
2012/10/07 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
2019/07/01 Python
python移位运算的实现
2019/07/15 Python
如何使用Flask-Migrate拓展数据库表结构
2019/07/24 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
Python实现中值滤波去噪方式
2019/12/18 Python
python实现高斯投影正反算方式
2020/01/17 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
优秀高中生事迹材料
2014/02/11 职场文书
社区消防工作实施方案
2014/03/21 职场文书
幼儿园家长安全责任书
2014/07/22 职场文书
2014年大班保育员工作总结
2014/12/02 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
导游词之新疆尼雅遗址
2019/10/16 职场文书
python实现过滤敏感词
2021/05/08 Python
OpenCV-Python实现轮廓拟合
2021/06/08 Python