我的带有2个变量的foreach循环不起作用

时间:2015-03-02 17:10:56

标签: php csv foreach

$lines = file("C:/xampp/htdocs/results/result5.csv");
$lines1 = file("C:/xampp/htdocs/results/result7.csv");
foreach(array_combine($lines, $lines1) as $line => $line1)
    echo "<a href='www.google.de/webhp?hl=de#hl=de&q=" . trim($line1) . "'><img src='" . trim($line) . "' style="width:200px;height:100px;" /></a>"
你好,伙计们, 我试图获得一个可点击的图像与2 .csv文件的成分。我想创建一行图像(第一个csv) - 当点击时 - 显示谷歌搜索(使用来自第二个csv的数据)。

CSV都具有相同的行数。

当单独处理每个csv时,我得到一行图像和一行链接,但这不是我想要的。

$lines = file("C:/xampp/htdocs/results/result5.csv");
$lines1 = file("C:/xampp/htdocs/results/result7.csv");
foreach($lines as $line)
    echo "<p><img src='" . trim($line) . "'></p>";
    foreach($lines1 as $line1)
        echo "<a href='www.google.de/webhp?hl=de#hl=de&q=" . trim($line1) . "'>CLICK</a>";

哪里出错?

2 个答案:

答案 0 :(得分:1)

您可以通过使用索引来避免array_combine - 假设文件被加载索引为0,1,2,3 ....

$lines = file("C:/xampp/htdocs/results/result5.csv");
$lines1 = file("C:/xampp/htdocs/results/result7.csv");
foreach($lines as $i=>$line) // $i is the index
{
    echo "<a href='www.google.de/webhp?hl=de#hl=de&q=" . trim($lines1[$i]) . "'>";
    echo "<img src='" . trim($line) . "'>";
    echo "</a>";
}

答案 1 :(得分:0)

也许你的意思是

foreach(array_merge($lines, $lines1) as $line) { ... }

而不是array_combine()

假设每个文件中的每一行都是一个条目

可替换地:

$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($lines));
$mi->attachIterator(new ArrayIterator($lines1));
foreach($mi as list($line, $line1)) {
    echo $line, ' - ', $line1, PHP_EOL;
}
相关问题