解析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对象转换为数组函数(递归方法)
Feb 04 PHP
php适配器模式介绍
Aug 14 PHP
php-perl哈希算法实现(times33哈希算法)
Dec 30 PHP
分享PHP函数实现数字与文字分页代码
Jul 28 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
浅谈PHP发送HTTP请求的几种方式
Jul 25 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
php 截取中英文混合字符串的方法
May 31 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
深入解析PHP底层机制及相关原理
Dec 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
咖啡与牛奶
2021/03/03 冲泡冲煮
thinkphp中的url跳转用法分析
2016/07/12 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
jquery判断字符输入个数(数字英文长度记为1,中文记为2,超过长度自动截取)
2010/10/15 Javascript
5个javascript的数字格式化函数分享
2011/12/07 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
JavaScript、C# URL编码、解码总结
2017/01/21 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
jQuery EasyUI Layout实现tabs标签的实例
2017/09/26 jQuery
浅谈webpack+react多页面开发终极架构
2018/11/11 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
如何HttpServletRequest文件对象并储存
2020/08/14 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
python socket 超时设置 errno 10054
2014/07/01 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
Python中用post、get方式提交数据的方法示例
2017/09/22 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
python 调用钉钉机器人的方法
2019/02/20 Python
python图的深度优先和广度优先算法实例分析
2019/10/26 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
详解CSS3选择器:nth-child和:nth-of-type之间的差异
2017/09/18 HTML / CSS
路德维希•贝克(LUDWIG BECK)中文官网:德国大型美妆百货
2020/09/19 全球购物
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
考试违纪检讨书
2014/02/02 职场文书
公司任命书模板
2014/06/06 职场文书
关于安全的广播稿
2014/10/23 职场文书
2015年新农合工作总结
2015/03/30 职场文书
对公司的意见和建议
2015/06/04 职场文书
nginx配置指令之server_name的具体使用
2022/08/14 Servers