数组迭代中的Echo覆盖以前的Echo(PHP)
目前我正在这样做:数组迭代中的Echo覆盖以前的Echo(PHP),php,html,arrays,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>'; 但是,它只打印出该文件的最后一行。几乎每个回声都被一个新的回
$lines = file('data/index');
foreach ($lines as $value)
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
但是,它只打印出该文件的最后一行。几乎每个回声都被一个新的回声覆盖了。很明显,我做得不对。为什么它不起作用?我怎样才能让它按我想要的方式运行?你需要大括号{}。如果没有它们,只有下一行在循环后被迭代。因此,只有您的列表被迭代
foreach ($lines as $value)
{ // <-- Important
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
} // <-- Important
你需要大括号{}。如果没有它们,只有下一行在循环后被迭代。因此,只有您的列表被迭代
foreach ($lines as $value)
{ // <-- Important
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
} // <-- Important
在代码中,只有第三行是循环的一部分。如果要在循环中同时使用这两条语句,则必须创建一个块:
foreach ($lines as $value) {
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}
此外,应避免使用PHP重复HTML。您应该将PHP嵌入到HTML中。它使您的代码,尤其是HTML标记更易于维护,并且不易出错
引用:在代码中,只有第三行是循环的一部分。如果要在循环中同时使用这两条语句,则必须创建一个块:
foreach ($lines as $value) {
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}
此外,应避免使用PHP重复HTML。您应该将PHP嵌入到HTML中。它使您的代码,尤其是HTML标记更易于维护,并且不易出错
参考资料:您有:
foreach ($lines as $value)
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
只有列表部分在foreach循环中。你需要:
foreach ($lines as $value)
{
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}
你有:
foreach ($lines as $value)
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
只有列表部分在foreach循环中。你需要:
foreach ($lines as $value)
{
list($title, $location) = explode("|", $value);
echo '<div id="entry"><a href="'.$location.'">'.$title.'</a></div>';
}
啊!直到刚才才看到其他答案。编辑:+1为费利克斯·金的回答!直到刚才才看到其他答案。编辑:+1为费利克斯·金的回答谢谢,真不敢相信我错过了。我是新手PHP@MaxMackie:此问题并非特定于PHP。这在大多数其他基于C语言的语言中都是一样的。我不同意回显HTML本身就是一种糟糕的样式。@FeliX Kling:作为对样式注释的回应,我应该如何正确地迭代文件的内容并将其转换为HTML?@MaxMackie也许你已经习惯Python了?在这种语言中,代码的缩进定义了块。谢谢你,真不敢相信我错过了。我是新手PHP@MaxMackie:此问题并非特定于PHP。这在大多数其他基于C语言的语言中都是一样的。我不同意回显HTML本身就是一种糟糕的样式。@FeliX Kling:作为对样式注释的回应,我应该如何正确地迭代文件的内容并将其转换为HTML?@MaxMackie也许你已经习惯Python了?在这种语言中,代码的缩进定义了块。让我猜猜,您来自python背景?@code\u burgar在这种情况下,他的缩进应该是正确的;让我猜猜,你来自python背景?@code_burgar如果是这样的话,他的缩进应该是正确的;下一个声明。如果错误地在后面键入分号,则可能在同一行!下一个声明。如果错误地在后面键入分号,则可能在同一行!