2015-04-01 68 views
0

我有这样的嵌套数组:提取子阵列生成的密钥= id和value =名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作为我的阵列的关键。任何指导将不胜感激。

+0

尝试'array_column'查看更多http://php.net/array_column – 2015-04-01 16:25:23

回答

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) 
0

我在中科院想通了e如果其他人会感兴趣。非常感谢您的快速解答,但我正在使用CakePHP寻找解决方案。

Set::combine($my_array, '{n}.id', '{n}.name'); did the trick, cheers!