2009-05-18 46 views
2

我有一個問題,我需要早日修復而不是晚些時候修復。如果我有時間重寫整個腳本,但是這是程序員的生活,對吧? anywho,我已經採取了一個項目,我有一個多維混合關聯/數字數組,像這樣:多維混合關聯/數組陣列移位

Array 
(
    [item1] => Array 
     (
      [dataset] => Array() 
      [3] => Array() 
      [7] => Array() 
     ) 
    [item2] => Array 
     (
      [dataset] => Array() 
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
     ) 
) 

我需要做什麼在每個itemX指標被轉移數據集指數將導致最後的指標是:

Array 
(
    [item1] => Array 
     (
      [3] => Array() 
      [7] => Array() 
      [dataset] => Array() 
     ) 
    [item2] => Array 
     (
      [4] => Array() 
      [19] => Array() 
      [2] => Array() 
      [dataset] => Array() 
     ) 
) 

幾件事情,可以幫助做到這一點的是,我知道數據集索引將永遠是itemX索引中的第一個索引,並且鍵將始終爲「數據集」,其他索引將始終爲數字索引。反正有沒有在PHP中做到這一點?事實上,這是一個混合陣列扔我。我不能讓數字索引重置並從0開始,它們的順序是否移位並不重要,只是它們都來自「數據集」索引之前。也許這只是那些日子之一....:\任何建議或意見,非常感謝。

回答

2

環路雖然這樣所有元素:

foreach ($all_items as $key =>$items) { 
    $dataset = $items['dataset']; 
    unset($all_items[$key]['dataset']); // Removing it (from the top) 
    $all_items[$key]['dataset'] = $dataset; // Adding it again (at the bottom) 
} 

再次伸出,收藏的「數據集」元素和添加它會導致元件在底部加入。

直接修改原始數組非常重要,而不是foreach中的$ items,因爲這些更改不會影響原始數組。

+0

真棒...哇。怎麼回事。我在所有的維度中感到如此困惑,這些顯然完全逃脫了我。謝啦! – ocergynohtna 2009-05-18 17:24:30