php - 如何在不循环的情况下获取多维数组中特定 "key"的数组

标签 php

假设我有以下多维数组(从 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/

相关文章:

javascript - 使用 ajax 和 php 提交表单

php - 为什么很多网站(MySQL)的查询参数都是非常神秘的长整数?

php - 更改查询以将 3 个表连接在一起

PHP 对 ajax 的响应

php - 无法附加相同的 div

php - 使用 Amazon s3 作为 PHP 应用程序的(某种)数据库是不是一个错误的决定?

php - 错误 : Invalid PathExpression. 必须是 StateFieldPathExpression

php - 'Unexpected echo' PHP 错误消息 - 在 html 输入 'value' 字段中输出 php 变量

php - 从动态表中获取数据,作为变量输入以在表单 php 中使用

javascript - 如何序列化两个表格和整个表格