假设我有以下多维数组(从MySQL或服务中检索):
array(
array(
[id] => xxx,
[name] => blah
),
array(
[id] => yyy,
[name] => blahblah
),
array(
[id] => zzz,
[name] => blahblahblah
),
)
Run Code Online (Sandbox Code Playgroud)
我们可以id在一个" 内置 "php函数调用中获取一个s 数组吗?还是一行代码?
我知道传统的循环并获得价值,但我不需要这样:
foreach($users as $user) {
$ids[] = $user['id'];
}
print_r($ids);
Run Code Online (Sandbox Code Playgroud)
也许有些array_map()和call_user_func_array()可以做的魔力.
phi*_*hag 238
从PHP 5.5开始,您可以使用array_column:
$ids = array_column($users, 'id');
Run Code Online (Sandbox Code Playgroud)
从php 5.3开始,您可以使用array_map匿名函数,如下所示:
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
Run Code Online (Sandbox Code Playgroud)
之前(技术上是php 4.0.6+),您必须创建一个匿名函数create_function:
$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);
Run Code Online (Sandbox Code Playgroud)
jus*_*ris 12
从PHP5.5开始,你可以使用array_column(),这使得以下所有内容都过时了.
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
@phihag的解决方案将从PHP 5.3.0开始在PHP中完美运行,如果在此之前需要支持,则需要复制该wp_list_pluck.
在Wordpress中有一个名为wp_list_pluck的函数 如果您正在使用Wordpress来解决您的问题.
PHP <5.3如果您不使用Wordpress,由于代码是开源的,您可以复制粘贴项目中的代码(并将函数重命名为您喜欢的函数,如array_pick).在这里查看来源