假设我有以下多维数组(从MySQL或服务检索):
array( array( [id] => xxx, [name] => blah ), array( [id] => yyy, [name] => blahblah ), array( [id] => zzz, [name] => blahblahblah ), )
我们可以id在一个“ 内置 ” php函数调用中获得一组s 吗?或一行代码? 我知道传统的循环并获得价值,但是我不需要这个:
id
foreach($users as $user) { $ids[] = $user['id']; } print_r($ids);
也许有些array_map()和call_user_func_array()可以做的魔力。
array_map()
call_user_func_array()
从php 5.5开始,您可以使用array_column:
array_column
$ids = array_column($users, 'id');
这是任何现代项目的首选选项。但是,如果必须支持php <5.5,则存在以下替代方法:
从php 5.3开始,您可以使用array_map匿名函数,如下所示:
array_map
$ids = array_map(function ($ar) {return $ar['id'];}, $users);
在(技术上为PHP 4.0.6+)之前,您必须创建一个匿名函数,create_function而不是:
create_function
$ids = array_map(create_function('$ar', 'return $ar["id"];'), $users);