php - 数组迭代中的 echo 覆盖以前的 echo (PHP)

标签 php html arrays

目前我正在这样做:

$lines = file('data/index');
    foreach ($lines as $value)
    list($title, $location) = explode("|", $value);
    echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';

data/index的内容是:

This is a test post|http://google.com 
Another test post|http://google.com

但是,它只打印出该文件的最后一行。几乎就像每个“echo ”都被一个新的“echo ”覆盖一样。我显然没有正确地做到这一点。为什么它不起作用,我怎样才能让它按照我想要的方式运行?

最佳答案

在您的代码中,只有第三行是循环的一部分。如果你想让这两个语句都在循环中,你必须创建一个 block :

foreach ($lines as $value) {
    list($title, $location) = explode("|", $value);
    echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}

此外,应避免使用 PHP echoing HTML。您应该将 PHP 嵌入到您的 HTML 中。它使您的代码(尤其是 HTML 标记)更易于维护并且不易出错。

引用:foreach

关于php - 数组迭代中的 echo 覆盖以前的 echo (PHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7868865/

相关文章:

php - PHP中遍历树的数据结构?

php - 命名空间常量和用途

javascript - 自动刷新 HTML 表的 Ajax Click 事件

arrays - Elasticsearch - 过滤其中(嵌套数组之一)和(所有嵌套数组)

php - 不考虑 PHP 顺序的字符串比较

php - 返回空值;与返回;

php - 从 PHP 返回字符串并警告 jQuery 响应

javascript - HTML 元素数组未定义

javascript - Skrollr 淡入淡出文本不起作用,但所有其他 skrollr 元素都起作用

c# - 将字节数组转换为位数组问题