2014-10-01 101 views
0

我剛剛完成了一個腳本,但我知道,我可以使它更乾淨。我需要幫助。PHP,與循環動態變量和數組循環

這裏是我的代碼的最後循環:

$fp = fopen('php://output', 'w'); 
for ($i = 0 ; $i < $nba ; $i++){ 
    fputcsv($fp, array($r{0}[$i],$r{1}[$i],$r{2}[$i],$r{3}[$i],$r{4}[$i],$r{5}[$i],$r{6}[$i],$r{7}[$i],$r{8}[$i],$r{9}[$i],$r{10}[$i],$r{11}[$i],$r{12}[$i],$r{13}[$i],$r{14}[$i],$r{15}[$i],$r{16}[$i],$r{17}[$i],$r{18}[$i],$r{19}[$i],$r{20}[$i],$r{21}[$i]), ';'); 
} 
fclose($fp) ; 

我如何避免在這個例子中複製並從r {0}粘貼[$ i]於R {21} [$ i] ?我敢肯定,答案就在我面前,但是我在這些代碼之前花了太多時間在代碼中思考問題。

非常感謝。

+0

你是什麼'$ r'? – 2014-10-01 08:22:48

+0

爲什麼不是簡單的$ r數組,你會在這個序列化? – Jack 2014-10-01 08:24:22

+0

$ r是一個動態變量,它也是一個數組。但沒關係。我通過@Francois B.得到了答案。謝謝。 – hellodracon 2014-10-01 09:50:08

回答

0
$fp = fopen('php://output', 'w'); 
for ($i = 0 ; $i < $nba ; $i++){ 

    $array = array(); 
    for($j=0;$j<22;$j++) 
      $array[$j] = $r{$j}[$i]; 

    fputcsv($fp, $array, ';'); 
} 
fclose($fp) ; 
+0

它不起作用。很難解釋它的作用。 BUt ..它重複..我會說..「按行,而不是行」..我不知道它是否有你的感覺,但我找不到其他:) – hellodracon 2014-10-01 09:42:27

+0

哎呀!我的壞,它效果很好!我犯了一個錯誤。非常感謝 ! – hellodracon 2014-10-01 09:45:30

0

嘗試使用此代碼:

$fp = fopen('php://output', 'w'); 
for ($i = 0 ; $i < $nba ; $i++){ 
    for ($j = 0 ; $j < 22 ; $j++){ 
     $arry[] = $r{$j}[$i]; 
    } 

    fputcsv($fp, $arry, ';'); 
} 
fclose($fp); 
+0

與@Francois B相同,它並不像它應該的那樣真正起作用。 – hellodracon 2014-10-01 09:43:06

+0

@ francois-b代碼很棒。我嘗試時犯了一個錯誤。 – hellodracon 2014-10-01 09:48:19