2013-07-20 102 views
0

我有一些問題重新排列在PHP中的數組。這是我...PHP Array重新排列

Array 
(
    [N] => Array 
     (
      [68] => sssssss ttttttt 
      [69] => uuuuuu vvvvvvvv 
     ) 

    [D] => Array 
     (
      [05] => zzzzzzzz zzzzzzzz 
      [07] => tttttttttttt ttttttttttt 
     ) 

    [P] => Array 
     (
      [88] => yyyyyyy zzzzzzzz 
     ) 

    [C] => Array 
     (
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 
     ) 

) 

我要的是下面...

Array 
(
    [N] => Array 
     (
      [68] => sssssss ttttttt 
      [69] => uuuuuu vvvvvvvv 
      // only C are added here with N 
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 

     ) 

    [D] => Array 
     (
      [05] => zzzzzzzz zzzzzzzz 
      [07] => tttttttttttt ttttttttttt 
     ) 

    [P] => Array 
     (
      [88] => yyyyyyy zzzzzzzz 
     ) 

    [C] => Array 
     (
      [04] => wwwwww wwwwwww 
      [06] => iiiiiii iiiiiiii 
      [41] => zzzzzzzzzz zzzzzzzzzz 
     ) 
) 

我需要的C-元素被添加到N,而所有其餘的保持原樣包括C本身。

我該如何做到這一點?

有人幫助,請... 感謝

回答

2

非常簡單的東西;只需添加兩個數組這樣在一起:

// add C to N 
$arr['N'] += $arr['C']; 

如果你不知道什麼鍵名稱,你只是想針對第一項和最後一項:

reset($arr); $first = key($arr); 
end($arr); $last = key($arr); 

$arr[$first] += $arr[$last]; 
+0

這不是真的問題,但它輸出的只是第一個數組加在一起N + C ...但不能循環通過它...任何方式,我從你的代碼學到一些東西。 ..謝謝。 –

+0

@MrInternet恐怕我沒有按照; 'print_r($ arr)'應該給出你想要的東西,可以看到[這裏](http://codepad.viper-7.com/HfZvhb)。 –

+0

沒有,print_r只給出$ arr ['N'] + = $ arr ['C'];但其他人呢?像['D'] ['P']?他們不包括在內。 –

0

試試這個:

$last_array = $main_array[count($main_array) - 1]; 
$new_array = array_merge($main_array[0], $last_array); 
array_shift($main_array); 
array_unshift($main_array, $new_array); 
var_dump($main_array); 
+0

感謝您的快速回復,並把我的代碼以非常明確的格式,但不幸的是上面的代碼似乎不工作,沒有出(空),但我嘗試不同的方法,可能是一些其他的想法? –

+0

@Mr互聯網,好的。我redid的代碼。它現在有效。 – searsaw

+0

這就是我得到,看來我們切割第一N元素從陣列... –

1

這其實是很簡單的。您只需循環訪問最後一個數組,並將這些鍵值對添加到第一個數組中。 在這裏你去:

//---- $mainArray is your array. 


foreach ($mainArray['C'] as $key => $value) 
{ 
     $mainArray['N'][$key] = $value; 
} 

print_r($mainArray);