我从中得知:
Array{
[1] => Array{ [id] => 1, [name] => paul},
[2] => Array{ [id] => 2, [name] => eva}
}
得到这个:
Array{
[1] => paul,
[2] => eva
}
我曾经使用array_filter函数来实现这一点,但它返回了输入的相同数组。我做错了什么?
array_filter($array, create_function('&$a','return $a["name"]);'));
P.S。我知道我可以使用foreach,但我知道这是一个oneliner。
答案 0 :(得分:2)
您必须使用array_map()
,而不是array_filter()
。
不知怎的,这样:
function func($a) {
return $a["name"];
}
array_map('func', $array);
答案 1 :(得分:2)
你需要使用array_map()而不是array_filter() 尝试
function cube($n)
{
return($n * $n * $n);
}
$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
答案 2 :(得分:0)
array_column()
如果php version
> = PHP 5.5
<?php
$a=array(array('id'=>"1",'name'=>"paul"),array('id'=>"2",'name'=>"eva"));
$a=array_combine(array_column($a,"id"),array_column($a,"name"));
print_r($a);
<强>输出:强>
Array
(
[1] => paul
[2] => eva
)