2012-11-02 106 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