2014-03-30 79 views
0

把數組項我嘗試採取以下數組:PHP:在新秩序

Array 
(
[0] => Array 
    (
     [1] => 12 
     [2] => 21 
     [3] => 33 
    ) 

[1] => Array 
    (
     [1] => 5 
     [2] => 5 
     [3] => 4 
    ) 

[2] => Array 
    (
     [1] => 1 
     [2] => 10 
     [3] => 11 
    ) 

[3] => Array 
    (
     [3] => 2 
    ) 

,並創建一個新的數組有了它,將源數組的第一個條目。所以從這個第一陣列是這樣的:

Array 
(
[0] => 12 
[1] => 5 
[2] => 1 
[3] => 2 
) 

,第二個顯然是這樣的:

Array 
(
[0] => 21 
[1] => 5 
[2] => 10 
) 

我有2試過周圍循環,這一定程度上與

for ($i = 1; $i < count($month_array[$i]) + 1; $i++) 
{ 
    unset($temp_array); 
    for ($i2 = 0; $i2 < count($month_array); $i2++) 
    { 
     if (isset($month_array[$i2][$i])) 
     { 
      $temp_array[] = $month_array[$i2][$i]; 
     } 
    } 
} 
工作

但是它留下了一些元素,如果源數組不完整,意味着只有第三個數組有一個值爲鍵3,它也失敗。 有什麼幫助嗎?非常感謝 !

+0

擺脫'+ 1' –

回答

0

試試這樣說:

$org_array = array(array(1 => 12,2 => 21,3 => 33),array(1 => 5,2 => 5,3 => 4),array(1 => 1,2 => 10,3 => 11),array(3 => 2),); // your original array 

$new_array = array(); // the output array 
foreach($org_array as $sub_org_value) { // for each sub array of your original array do this 
    foreach($sub_org_value as $key => $value) { // for each entry in a sub array do this 
     $new_array[$key][] = $value; // add the entry into the new_array in the right sub array 
    } 
} 

print_r($new_array[1]); // yields 12,5,1 
print_r($new_array[2]); // yields 21,5,10 
print_r($new_array[3]); // yields 33,4,11,2 

之後,你有一個包含三個數組的數組$new_array。第一個子陣列有全部1個值,第二個子陣列全部有2個值,第三個子陣列全部有3個值。

+0

這對我來說很好,非常感謝你! – user3479176