提取子数组在 CakePHP 中生成的键=id 和值=名称


Extract sub array resulting key=id and value=name in CakePHP

我有这个嵌套数组:

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列与我得到的namearray_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!