我有这个嵌套数组:
Array
(
[id] => 1
[name] => Group 1
[0] => Array
(
[id] => 1
[name] => Group 1
)
[1] => Array
(
[id] => 2
[name] => Group 2
)
[2] => Array
(
[id] => 7
[name] => Group 7
)
)
我想在一个数组中提取子数组[0]
,[1]
和[2]
但是遵循以下格式:
array(
[id] => [name]
)
换句话说,我希望得到这样的结果:
Array
(
[1] => Group 1
[2] => Group 2
[7] => Group 7
)
*注意:我尝试使用Set::classicExtract($my_array['Group'], '{n}.name');
,但我无法弄清楚如何将group.id
作为我的数组的键。任何指导将不胜感激。
答案 0 :(得分:0)
这应该适合你:
(此处我首先array_filter()
所有值都没有数字键。之后我只需array_combine()
id
列,其中包含name
列我得到了array_column()
)
<?php
$result = array_filter($arr, function($k){
return is_numeric($k);
}, ARRAY_FILTER_USE_KEY);
$result = array_combine(array_column($result, "id"), array_column($result, "name"));
print_r($result);
?>
输出:
Array ( [1] => Group 1 [2] => Group 2 [7] => Group 7 )
答案 1 :(得分:0)
我想是否有其他人会感兴趣。非常感谢快速回答,但我正在寻找使用CakePHP
的解决方案。
Set::combine($my_array, '{n}.id', '{n}.name'); did the trick, cheers!