一尘不染

如何在不循环的情况下获取多维数组中特定“键”的数组

php

假设我有以下多维数组(从MySQL或服务检索):

array(
    array(
        [id] => xxx,
        [name] => blah
    ),
    array(
        [id] => yyy,
        [name] => blahblah
    ),
    array(
        [id] => zzz,
        [name] => blahblahblah
    ),
)

我们可以id在一个“ 内置 ” php函数调用中获得一组s 吗?或一行代码?
我知道传统的循环并获得价值,但是我不需要这个:

foreach($users as $user) {
    $ids[] = $user['id'];
}
print_r($ids);

也许有些array_map()call_user_func_array()可以做的魔力。


阅读 308

收藏
2020-05-26

共1个答案

一尘不染

从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);
2020-05-26