PHP提取多维数组指定一列的方法大全
2021/5/20 14:25:43
本文主要是介绍PHP提取多维数组指定一列的方法大全,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
PHP中对多维数组特定列的提取,是个很常用的功能,正因为如此,PHP在5.5.0版本之后,添加了一个专用的函数array_column()。当然,如果你的PHP版本低于5.5.0,就得用别的方法处理了。
例如,对于以下这个数组:
$user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username' => 'a2'), '2' => array('id' => 102, 'username' => 'a3'), '3' => array('id' => 103, 'username' => 'a4'), '4' => array('id' => 104, 'username' => 'a5'), );
我们要提取其中的 usename 列,变成:
$username = array('a1', 'a2', 'a3', 'a4', 'a5');
方法有以下几种。
1、 array_column函数法
这是最简单的方法,但是要求PHP版本必须是5.5.0及以上版本,方法:
$username = array_column($user, 'username');
2 、array_walk函数法
array_walk()函数使用用户自定义函数对数组中的每个元素做回调处理,实现当前功能的方法:
$username = array(); array_walk($user, function($value, $key) use (&$username){ $username[] = $value['username']; });
3、 array_map函数法
array_map()函数和array_walk() 作用类似,将回调函数作用到给定数组的单元上。
$username = array(); array_map(function($value) use (&$username){ $username[] = $value['username']; }, $user);
4、 foreach循环法
foreach循环相对上面的方法效率稍微低一些,但简单容易理解。
$username = array(); foreach ($user as $value) { $username[] = $value['username']; }
5、 array_map变种
方法如下,意为把$user数组的每一项值的开头值移出,并获取移除的值作为新数组。注意此时新数组$username的键仍是原数组$user的键,如下。
$username = array_map('array_shift', $user);
注意:该功能会获取$user中的 id 列,而不是 username 列。
另外,如果需要获取二维数组每一项的开头列或结尾列,也可以这样做:
$username = array_map('reset', $user); $username = array_map('end', $user);
这三个变种方法作用比较局限,仅在获取第一列或最后一列的时候有用,在复杂的数组中就难以发挥作用了。
这篇关于PHP提取多维数组指定一列的方法大全的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享