解析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 相关文章推荐
windows xp下安装pear
Dec 02 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP基础学习之流程控制的实现分析
Apr 28 PHP
PHP实现一维数组转二维数组的方法
Feb 25 PHP
WordPress中缩略图的使用以及相关技巧
Nov 24 PHP
apache php mysql开发环境安装教程
Jul 28 PHP
jquery+thinkphp实现跨域抓取数据的方法
Oct 15 PHP
PHP实现的DES加密解密封装类完整实例
Apr 29 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
Nov 14 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP中有关长整数的一些操作教程
Sep 11 PHP
php双向队列实例讲解
Nov 17 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 图像函数大举例(非原创)
2009/06/20 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP 文件锁与进程锁的使用示例
2017/08/07 PHP
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
javascript宿主对象之window.navigator详解
2016/09/07 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
2017/03/08 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
fetch 如何实现请求数据
2018/12/20 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
jquery简单实现纵向的无缝滚动代码实例
2019/04/01 jQuery
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
javascript实现倒计时提示框
2021/03/02 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
Python的gevent框架的入门教程
2015/04/29 Python
Python中的多行注释文档编写风格汇总
2016/06/16 Python
Python实现删除列表中满足一定条件的元素示例
2017/06/12 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python如何发送与接收大型数组
2020/08/07 Python
python 实现Harris角点检测算法
2020/12/11 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
预订奥兰多和佛罗里达州公园门票:FloridaTix
2018/01/03 全球购物
家长给孩子的评语
2014/01/30 职场文书
保护环境建议书100字
2014/05/13 职场文书
宣传口号大全
2014/06/16 职场文书
写给妈妈的感谢信
2015/01/22 职场文书
苏州园林导游词
2015/02/03 职场文书
实名检举信范文
2015/03/02 职场文书
2015年大学生工作总结
2015/04/21 职场文书
小学体育教学随笔
2015/08/14 职场文书
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android