猿问

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

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

假设我有以下多维数组(从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()可以做的魔力。


富国沪深
浏览 385回答 3
3回答

凤凰求蛊

从PHP 5.5开始,您可以使用array_column:$ids = array_column($users, 'id');从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 5.5+从PHP5.5开始,你可以使用array_column(),这使得以下所有内容都过时了。PHP 5.3+$ids = array_map(function ($ar) {return $ar['id'];}, $users);@phihag的解决方案将从PHP 5.3.0开始在PHP中完美运行,如果在此之前需要支持,则需要复制该wp_list_pluck。PHP <5.3Wordpress 3.1+在Wordpress中有一个名为wp_list_pluck的函数 如果您正在使用Wordpress来解决您的问题。PHP <5.3如果您没有使用Wordpress,由于代码是开源的,您可以复制粘贴项目中的代码(并将函数重命名为您喜欢的函数,如array_pick)。

当年话下

如果id是数组中的第一个键,那么这样做:$ids&nbsp;=&nbsp;array_map('current',&nbsp;$users);你不应该依赖于此。:)
随时随地看视频慕课网APP
我要回答