前言:有时候在开发中会遇到这样的问题,我们需要把有规律的多维数组按照纵向(列)取出,有下面的方法可用:

我们将拿下面的数组来处理:

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 //复杂的数组中就难以发挥作用了。

php 提取多维数组指定列的更多相关文章

  1. PHP之提取多维数组指定列的方法

    前言:有时候在开发中会遇到这样的问题,我们需要把有规律的多维数组按照纵向(列)取出,有下面的方法可用: 我们将拿下面的数组来处理: $arr = array( '0' => array('id' ...

  2. PHP提取多维数组指定一列的方法大全

    目录 1 array_column函数法 2 array_walk函数法 3 array_map函数法 4 foreach循环法 5 array_map变种 PHP中对多维数组特定列的提取,是个很常用 ...

  3. C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why?

    C/C++遍历二维数组,列优先(column-major)比行优先(row-major)慢,why? 简单粗暴的答案:存在Cache机制! 稍微啰嗦一点:CPU访问内存(读/写,遍历数组的话主要是读) ...

  4. PHP计算二维数组指定元素的和

    array_sum(array_column($arr, 'num')); //计算二维数组指定元素的和 $arr = [ [ 'id'=>1, 'num'=>3, ], [ 'id'=& ...

  5. php数组函数array_column:不用循环就能提取多维数组内容

    作为一个有多年PHP开发经验的码农,我也是前段时间才发现PHP处理数组有这么好用的函数, 至此之前,我处理数组的数据基本都是使用循环,记录一下两个函数的用法: array_column() 函数 返回 ...

  6. PHP获取二维数组指定字段值的和

    array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' ...

  7. array_column()提取二维数组中某个值

    <?php $multipleCommodity = array( =>array(), =>array() ); $arr1=array_column($multipleCommo ...

  8. php 多维数组指定某个值作为键

    $temp_key = array_column($mobile_arr,'cidf'); //键值 $mobile_arr = array_combine($temp_key,$mobile_arr ...

  9. PHP二维数组(或任意维数组)转换成一维数组的方法汇总(实用)

    目录 1 array_reduce函数法 2 array_walk_recursive函数法 3 array_map函数法 假设有下面一个二维数组: $user = array( '0' => ...

随机推荐

  1. POJ 1488 - TEX Quotes

    Description TEX is a typesetting language developed by Donald Knuth. It takes source text together w ...

  2. [No0000108]Git1/9-Git简介与入门

    Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制系统? 如果你用Microsoft Word写过长篇大论, ...

  3. mysq数据库基本操作

    MySQL的数据库名称,表名称是区分大小写,MySQL 的SQL keywords不区分大小写: if when you attempt to log in, you get an error mes ...

  4. PHP之null

    null类型 特殊的null值表示一个变量没有值.null类型唯一可能的值是null. 在下列情况下一个变量被认为是null: ①.被赋值为null ②.尚未被赋值 ③被unset(). 语法 nul ...

  5. PHP-之POSIX系列函数和兼容Perl系列函数比较

    PHP有两种正则系列函数 POSIX 系列和兼容Perl系列的函数 在PHP大于5.3使用POSIX系列函数会报E_DEPRECATED 错误, POSIX系列函数在大于5.3版本不建议使用,PHP7 ...

  6. [troubleshoot][daily][redhat] 设备反复重启故障排查

    一台服务器设备,反复重启,每天重启数次. 一: 原因分析及初步排异. 1.  硬件,内存主板,一一更换,甚至除了硬盘将整台机器都换掉了,依然重启. 2.  排除电源问题,换了电源线,换了插座,还是重启 ...

  7. gitee 使用

    gitee 使用 首先在码云仓库创建对应的仓库 当你输入错误用户名和密码 需要清掉配置 git config --system --unset credential.helper 设置账号 git c ...

  8. 洛谷P3295 萌萌哒 [SCOI2016] 倍增+并查集

    正解:倍增+并查集 解题报告: 传送门! 首先不难想到暴力?就考虑把区间相等转化成对应点对相等,然后直接对应点连边,最后求有几个连通块就好辣 然后看下复杂度,修改是O(n2)查询是O(n),就比较容易 ...

  9. Python网络爬虫第三弹《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  10. webpack导入css及各项loader

    1. webpack导入css 1) 下载相关的加载器 npm install style-loader css-loader -D 2)将index.css引入到mian.js中 import '. ...