2015-04-01 36 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!