我有这个嵌套数组:
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
作为我的数组的键。任何指导将不胜感激。
这应该适合您:
(在这里,我首先array_filter()
所有没有数字键的值。在此之后,我只需将id
列与我得到的name
列array_combine()
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 )
我想到了其他人是否会感兴趣。非常感谢您的快速回答,但我正在寻找使用 CakePHP
的解决方案。
Set::combine($my_array, '{n}.id', '{n}.name'); did the trick, cheers!