2011-06-24 40 views
1

予需要此輸出..如何在三列中打印數組的值?

1 3 5 
2 4 6 

我想使用狀陣列(1,2,3,4,5,6)陣列的功能。如果我編輯此陣列狀陣列(1,2,3)意味着輸出需要顯示像

1 2 3 

概念是最多3個柱only.If我們給出陣列(1,2,3,4,5 )裝置的輸出應是

1 3 5 
2 4 

假設我們將給出陣列(1,2,3,4,5,6,7,8,9)指O/p是

1 4 7 
2 5 8 
3 6 9 

最大僅3列。取決於給定的輸入行將創建3列。這是可能的PHP?上午做小研究&數組函數的開發。我想這是可能的。請問你能幫助我嗎? For more info:I/p:array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) O/P:

1 6 11 
2 7 12 
3 8 13 
4 9 14 
5 10 15 
+1

這不是一個問題的數學。它看起來似乎更適合於stackoverflow,或者其他處理編程的stackexchange站點。 – 2011-06-24 07:19:29

+0

請問您是否將此問題遷移到Stackoverflow?我沒有權限這麼做..請您.. :) – Ramkumar

+1

我還沒有權力做到這一點,但是,我已經標記爲版主注意,他們將能夠。 – 2011-06-24 07:22:20

回答

1

獲取行數如同ceiling(每行元素/元素的總數)。您只需將元素從一個一維數組複製到另一個二維數組。一個可能的方法:

<?php 
$input = array(
    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 
); 
$col = 3; 
$row = ceil(count($input)/$col); 
$output = array(); 
while(count($input)){ 
    $output[] = array_splice($input, 0, $row); 
} 
for($i = 0; $i < $row; $i++) { 
    $temp = array(); 
    for($j = 0; $j < $col; $j++) { 
     if (isset($output[$j][$i])) { 
      $temp[] = $output[$j][$i]; 
     } 
    } 
    echo implode(", ", $temp) . "\n"; 
} 

輸出

1, 6, 11 
2, 7, 12 
3, 8, 13 
4, 9 
5, 10