解析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在Web开发领域的优势
Oct 09 PHP
PHP开发的一些注意点总结
Oct 12 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
php中通过数组进行高效随机抽取指定条记录的算法
Sep 09 PHP
PHP制作图形验证码代码分享
Oct 23 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
php准确获取文件MIME类型的方法
Jun 17 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
Sep 30 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
Laravel中Kafka的使用详解
Mar 24 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环境套包 dedeampz 伪静态设置示例
2014/03/26 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
php生成图片缩略图的方法
2015/04/07 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
让焦点自动跳转
2006/07/01 Javascript
用JS剩余字数计算的代码
2008/07/03 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
2008/12/22 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
PHP守护进程实例
2015/03/06 Javascript
JavaScript解八皇后问题的方法总结
2016/06/12 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
2016/09/23 Javascript
Angular表格神器ui-grid应用详解
2017/09/29 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
vue打包之后生成一个配置文件修改接口的方法
2018/12/09 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
python 循环while和for in简单实例
2016/08/16 Python
python中星号变量的几种特殊用法
2016/09/07 Python
解决python3 Pycharm上连接数据库时报错的问题
2018/12/03 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
python的列表List求均值和中位数实例
2020/03/03 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
详解Python3 定义一个跨越多行的字符串的多种方法
2020/09/06 Python
Python做图像处理及视频音频文件分离和合成功能
2020/11/24 Python
惠普新加坡官方商店:HP Singapore
2020/04/17 全球购物
旷工检讨书1000字
2015/01/01 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
浅谈Java实现分布式事务的三种方案
2021/06/11 Java/Android
教你如何使用Python实现二叉树结构及三种遍历
2021/06/18 Python