带有3个变量的foreach循环

时间:2018-02-27 13:33:07

标签: php foreach while-loop

我有3个txt文件,所以每行都有一个句子,我想打印它们

$a = '1.txt';
$b = '2.txt';
$c = '3.txt';

$a1= file($a);
$b1= file($b);
$c1= file($c);

$id=1;

echo ' id: '.$id++. 'lang1: ' . $a1. 'lang2:' . $b1. 'lang3:' . $c1 .'<br>' ; 

所以结果应该是

id: 1 lang1:来自1.txt的第一行 lang2:来自2.txt的第一行    lang3: 3.txt的第一行

id: 2 lang1:来自1.txt的第二行 lang2:来自2.txt的第二行    lang3: 3.txt第二行

id: 3 lang1:来自1.txt的第三行 lang2:来自2.txt的第三行    lang3: 3.txt的第三行

4 个答案:

答案 0 :(得分:1)

如何做的一个例子:

$a = 'file1.txt';
$b = 'file2.txt';
$c = 'file3.txt';

$a1 = explode("\r\n", file_get_contents($a));
$b1 = explode("\r\n", file_get_contents($b));
$c1 = explode("\r\n", file_get_contents($c));

for($id = 1; $id <= 3; $id++) {
    $line = $id - 1;
    echo "id: {$id} lang1: {$a1[$line]} lang2 {$b1[$line]} lang3: {$c1[$line]} <br>"; 
}

答案 1 :(得分:0)

所有应该是:

a.append(button);
a.append(h3);

您还应关闭文件:

$a = '1.txt';
$b = '2.txt';
$c = '3.txt';

$a1= file($a, 'r');
$b1= file($b, 'r');
$c1= file($c, 'r');

$id=1;

while(($a_line = fgets($a1)) !== false) {
    $b_line = fgets($b1);
    $c_line = fgets($c1);
    echo ' id: '.$id++. 'lang1: ' . $a_line . 'lang2:' . $b_line . 'lang3:' . $c_line .'<br>' ; 
}

此外,只有在每个文件中有相同数量的行时,这才有效。

答案 2 :(得分:0)

$file1 = '1.txt';
$file2 = '2.txt';
$file3 = '3.txt';

$handle1 = fopen($file1, 'rb');
$handle2 = fopen($file2, 'rb');
$handle3 = fopen($file3, 'rb');

$id = 1;

while (($a = fgets($handle1)) && ($b = fgets($handle2)) && ($c = fgets($handle3))) {
    echo 'id: ' . $id++ . 'lang1: ' . $a . 'lang2:' . $b . 'lang3:' . $c .'<br>';
}

fclose($handle1);
fclose($handle2);
fclose($handle3);

这将从文件中逐行读取并打印您要求的结果。

答案 3 :(得分:0)

基本上,您需要:

  1. 打开3个文件
  2. 阅读每个文件的第一行
  3. 以所需格式输出数据
  4. 对其他行重复步骤2和3
  5. 打开文件的一个选项:http://php.net/manual/en/function.fopen.php

    从文件中读取下一行的一个选项:http://php.net/manual/en/function.fgets.php

    当达到文件末尾时,

    fgets将返回false,因此您可以将循环基于此。

    你有什么尝试?