【转】PHP之提取多维数组指定列的方法
前言:有时候在开发中会遇到这样的问题,我们需要把有规律的多维数组按照纵向(列)取出,有下面的方法可用:
我们将拿下面的数组来处理:
1 $arr = array( 2 '0' => array('id' => 1, 'name' => 'name1'), 3 '1' => array('id' => 2, 'name' => 'name2'), 4 '2' => array('id' => 3, 'name' => 'name3'), 5 '3' => array('id' => 4, 'name' => 'name4'), 6 '4' => array('id' => 5, 'name' => 'name5'), 7 );
//需要得到的结果:$name_list = array('name1', 'name2', 'name3', 'name4', 'name5');
1、使用array_column()
PHP在5.5.0版本之后,添加了一个专用的函数array_column()
方法:
1 $name_list = array_column($arr, 'name');
2、array_walk()方法
array_walk()使用用户自定义函数对数组中的每个元素做回调处理
1 $name_list = array(); 2 array_walk($arr, function($value, $key) use (&$name_list ){ 3 $name_list [] = $value['name']; 4 });
3、array_map()方法
array_map()函数和array_walk()
作用类似,将回调函数作用到给定数组的单元上
1 $name_list = array(); 2 array_map(function($value) use (&$name_list){ 3 $name_list[] = $value['name']; 4 }, $arr);
4、foreach循环遍历方法
foreach()循环相对上面的方法效率稍微低一些
1 $name_list = array(); 2 foreach ($arr as $value) { 3 $name_list[] = $value['name']; 4 }
5、array_map变种
把$arr数组的每一项值的开头值移出,并获取移除的值作为新数组。注意此时新数组$name_list的键仍是原数组$arr的键
1 $name_list = array_map('array_shift', $arr); 2 //注意:该功能会获取$arr中的 id 列,而不是name 列。 3 //另外,如果需要获取二维数组每一项的开头列或结尾列,也可以这样做: 4 5 $name_list = array_map('reset', $arr); 6 $name_list = array_map('end', $arr); 7 8 //这三个变种方法作用比较局限,仅在获取第一列或最后一列的时候有用,在 9 //复杂的数组中就难以发挥作用了。
Android 控件背景选择图片还是drawable XML资源
Android AlertDialog 绝对位置计算
Android 5.0以上Material Design 沉浸式状态栏
Android 6.0系统动态请求系统相机权限
Android软键盘在清单文件中所有配置含义
Android,TextView的所有属性和方法
【转载】Android控件属性大全
Android布局及控件的属性说明
android带有文字的图片按钮的两种实现方式
- 最新文章
-
mysql分组取topn
git常用
Parquet与ORC:高性能列式存储格式(收藏)
python开发环境搭建
hive中rcfile格式(收藏文)
hive中分析函数window子句
cassandra 之 集群部署
cassandra 之 在spark-shell 中使用 spark cassandra connector 完整案例
sublime text 3 设置
ubuntu 14.04 下安装jdk8及 smartgithg
- 热门文章
-
ubuntu 14.04中安装 ruby on rails 环境(填坑版) 呕血推荐
部分数据库资料
postgresql 入门(含java、scala连接代码)
命令行工具cmder
redis 入门
cassandra 之 jdbc 使用【java、scala】
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'
在Android library中不能使用switch-case语句访问资源ID的原因分析及解决方案
Android获取虚拟软键盘高度
android Button上面的英文字符串自动大写的问题解决
Copyright © 2011-2022 走看看