假设我有以下多维数组(从 MySQL 或服务中检索):
array(
array(
[id] => xxx,
[name] => blah
),
array(
[id] => yyy,
[name] => blahblah
),
array(
[id] => zzz,
[name] => blahblahblah
),
)
我们能否在一个“内置”php函数调用中获得一组id
?还是一行代码?
我知道传统的循环并获得值(value),但我不需要这个:
foreach($users as $user) {
$ids[] = $user['id'];
}
print_r($ids);
也许一些 array_map()
和 call_user_func_array()
可以做到这一点。
最佳答案
从 PHP 5.5 开始,您可以使用 array_column
:
$ids = array_column($users, 'id');
这是任何现代项目的首选选项。但是,如果您必须支持 PHP<5.5,则存在以下替代方案:
从 PHP 5.3 开始,您可以使用 array_map
使用匿名函数,如下所示:
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
在(技术上是 PHP 4.0.6+) 之前,您必须使用 create_function
创建一个匿名函数而是:
$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);
关于php - 如何在不循环的情况下获取多维数组中特定 "key"的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994497/