2014-04-08 136 views

回答

4

在PHP 5.5:

$result = array_column($foo, 'prop', 'id'); 

對於PHP < 5.5:

$result = array_combine(
    array_map(function($x) 
    { 
     return $x['id']; 
    }, $foo), 
    array_map(function($x) 
    { 
     return $x['prop']; 
    }, $foo), 
); 

我必須要注意的是,儘管一切都是隱藏內回調,甚至內置的功能,它仍然是循環內部 - 因此,就複雜性而言,它與普通循環相同。

-1

對於PHP < 5.5,您還可以使用array_reduce得到結果:

$result = array_reduce($foo, function($v, $w) { 
    $v[$w['id']] = $w['prop']; 
    return $v; 
}); 
+0

爲什麼(錯誤的)版本要求? –