解析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 socket方式提交的post详解
Jul 19 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
Aug 09 PHP
php GUID生成函数和类
Mar 10 PHP
php制作动态随机验证码
Feb 12 PHP
PHP基于MySQL数据库实现对象持久层的方法
Jun 17 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
Thinkphp3.2实用篇之计算型验证码示例
Feb 09 PHP
PHP中empty,isset,is_null用法和区别
Feb 19 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
php实现微信原生支付(扫码支付)功能
May 30 PHP
PHP chr()函数讲解
Feb 11 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/10/09 PHP
PHP+MySQL 制作简单的留言本
2009/11/02 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP中模糊查询并关联三个select框
2017/06/19 PHP
JavaScript 动态改变图片大小
2009/06/11 Javascript
javascript 自定义事件初探
2009/08/21 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
简介AngularJS的HTML DOM支持情况
2015/06/17 Javascript
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
Vue2 使用 Echarts 创建图表实例代码
2017/05/18 Javascript
jQuery插件Validation表单验证详解
2018/05/26 jQuery
通过vue-cli3构建一个SSR应用程序的方法
2018/09/13 Javascript
echarts统计x轴区间的数值实例代码详解
2019/07/07 Javascript
[02:36]DOTA2上海特锦赛 回忆电竞生涯的重要瞬间
2016/03/25 DOTA
Python检测生僻字的实现方法
2016/10/23 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Django model序列化为json的方法示例
2018/10/16 Python
详解Python3 对象组合zip()和回退方式*zip
2019/05/15 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
Origins悦木之源英国官网:雅诗兰黛集团高端植物护肤品牌
2017/11/06 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
保密工作责任书
2014/04/16 职场文书
2014党员干部四风问题对照检查材料思想汇报
2014/09/24 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
公司副总经理岗位职责
2014/10/01 职场文书
博士给导师的自荐信
2015/03/06 职场文书
停电放假通知
2015/04/14 职场文书
旅行社计调工作总结
2015/08/12 职场文书
mysql 获取相邻数据项
2022/05/11 MySQL