2012-11-02 50 views
0

$$我有一堆fo文本文件我想最終爆炸成數組,但由於文本文件的數量是通過用戶輸入動態選擇的,我不能只是一個接一個地初始化它們,而是選擇一個for循環。通過list()在for循環中創建數組?

例如起見,三個文本文件我有包含以下(原諒\ N,想象這是一個換行):

FILE1.TXT = 1 \ N 2 \ N 3

FILE2.TXT = 6 \ N 2 \ñ7

file3.txt = 9 \ n 1 \ n 9

代碼我試圖:

<?php 
    for ($i = 1; $i <= 3; $i++) { 
     list($line1[$i], $line2[$i], $line3[$i]) = file("public_html/texts/file".$i.".txt"); 
?> 

這顯然不起作用,但我不知道爲什麼。最後,結果應該是:

$line1[1] = 1 
$line2[1] = 2 
$line3[1] = 3 
$line1[2] = 6 
$line2[2] = 2 
$line3[2] = 7 
$line1[3] = 9 
$line2[3] = 1 
$line3[3] = 9 

我該如何去做這件事?

編輯;固定錯字。

+0

您的代碼似乎是正確的,誤差必須在其他地方你不能使用列表()。你檢查過的文件是否正確讀取並由file()返回? – Nelson

回答

1
for($i = 1; $i <= 3; $i++) { 

    $lines = file('public_html/texts/file' . $i . '.txt'); 

    $line1[] = $lines[0]; 
    $line2[] = $lines[1]; 
    $line3[] = $lines[2]; 
} 
+0

對不起,我在這裏看不到它。這隻考慮file1.txt和file2.txt,但文本文件的數量是用戶定義的,可以是任何數字。 – gator

+0

我編輯了我的答案..現在應該沒問題 –

2

你在你的代碼中的錯誤,請參閱:

file("public_html/texts/file".&i.".txt"); 
           ^-- TYPO HERE 
+0

修復了它,但我的代碼仍然無法正常工作。 – gator

+0

查看我對上述問題的評論,你的錯誤應該在其他地方,你似乎正在運行的PHP沒有錯誤日誌記錄,否則上述錯別字會導致PHP的解析錯誤,你會看到。所以首先啓用php錯誤輸出,以便您在代碼中看到錯誤。 – Nelson

+0

謝謝你的幫助,我真的很感激。我有錯誤日誌記錄,並且我在WAMP中得到的錯誤是任何我試圖回顯的變量不存在。當我回聲說,$ line1 [1],它說它是未定義的。 – gator