2011-09-18 96 views
0

我必須將第一個數組轉換爲第二個, 以array(id => data)的形式。 我做Cakephp Set :: combine。轉換一個數組

Set::combine($array, '{n}.{n}.id', '{n}.{n}'); 

但它不是working.Please告訴我什麼是錯在這個或那應該怎麼做。

數組1:

Array 
    (
     [0] => Array 
      (
       [0] => Array 
        (
         [id] => 1 
         [user_id] => 1 
         [group_id] => 7 
         [comment] => Comment 1. 
        ) 
       [1] => Array 
       (
        [id] => 3 
        [user_id] => 4 
        [group_id] => 8 
        [comment] => Comment 4 
       ) 

     ) 

數組2:

Array(
        [1] => Array 
         (
          [id] => 1 
          [user_id] => 1 
          [group_id] => 7 
          [comment] => Comment 1. 
         ) 
        [3] => Array 
        (
         [id] => 3 
         [user_id] => 4 
         [group_id] => 8 
         [comment] => Comment 4 
        ) 
     ) 

回答

4

因爲Set::combine()使用Set::extract()嚴重,我不相信這是可能沒有一些解決方法使用比單一的數值尺寸更在這個時候。

Set::combine($array[0], '{n}.id', '{n}');將工作。

使用下面的,如果你有通過多個維度週期:

$combined = array(); 
foreach ($array as $val) { 
    $combined = array_merge($combined, $val); 
} 
$combined = Set::combine($combined, '{n}.id', '{n}'); 
+1

感謝您response.It是非常有益的。 :) – Akarsh

+0

這正是我一直在尋找的。 :) –