PHP中用于循环输出的漂亮HTML格式

PHP中用于循环输出的漂亮HTML格式,php,html,for-loop,formatting,Php,Html,For Loop,Formatting,我很确定我在这里或其他地方没有找到答案,或者可能是因为我不能提出正确的问题是我的错,但无论如何,假设我的PHP中有一个类似这样的for循环: for($i=0; $i<3; $i++){ echo "<a href=\"\">$i</a> | "; } for($i=0; $i<3; $i++) { echo "<a href=\"\">$i</a>"; if($i < 2) echo "|

我很确定我在这里或其他地方没有找到答案,或者可能是因为我不能提出正确的问题是我的错,但无论如何,假设我的PHP中有一个类似这样的for循环:

for($i=0; $i<3; $i++){
echo "<a href=\"\">$i</a> | ";
}
for($i=0; $i<3; $i++)
{
    echo "<a href=\"\">$i</a>";

     if($i < 2)
         echo "|";
}

for($i=0;$i
for($i=0;$i
for($i=0;$i)所以您只需要从输出中删除最后一个条?为什么不在循环时跳过它呢?类似这样:

for($i=0; $i<3; $i++){
echo "<a href=\"\">$i</a> | ";
}
for($i=0; $i<3; $i++)
{
    echo "<a href=\"\">$i</a>";

     if($i < 2)
         echo "|";
}
用于($i=0;$i
$output=array();
对于($i=0;$i
$arr=array();
对于($i=0;i您也可以这样做:

for($i=0; $i<3; $i++) {
    $arr[] = "<a href=\"\">$i</a>";
}
echo implode(' | ',$arr);

对于($i=0;$i保持流动,只有在不是第一个时才需要:

for ($i = 0; $i < 3; $i++) {
    echo $i ? " | " : '', "<a href=\"\">$i</a>";
}
就是这个问题:

/* :( remove this! --> */ | <a href="">0</a> | <a href="">1</a> | <a href="">2</a>

有时候,这比摆弄PHP和HTML()更容易集成——不过这会将
|
添加到链接文本或样式中(至少在我测试的chrome中,看起来有问题).

这是编程中常见的一种情况,称为特殊情况模式。除了使用if语句或


for($i=0;$i不要在php中执行,而是在样式表中执行

首先构建你的HTML

<ul class="navlinks">
     <?php foreach($links as $linkName => $linkUrl): ?>
     <li><a href="<?php echo $linkUrl; ?>"><?php echo $linkName; ?></a></li>
     <?php endforeach; ?>
</ul>
应用CSS

.navlinks > li:after
{ 
    content:"<li>|</li>";
}

.navlinks > li:last-child:after
{ 
    content:"";
}
.navlinks>li:之后
{ 
内容:“
  • |
  • ”; } .navlinks>li:最后一个孩子:之后 { 内容:“; }
    你不应该用php来设计你的HTML,这是正确的方法

    echo implode(" | ", array_map(function($x){return "<a href=''>$x</a>";},range(1,3)));
    
    for($i=0; $i<3; $i++) {
        $arr[] = "<a href=\"\">$i</a>";
    }
    echo implode(' | ',$arr);
    
    for ($i = 0; $i < 3; $i++) {
        echo $i ? " | " : '', "<a href=\"\">$i</a>";
    }
    
    <a href="">0</a> | <a href="">1</a> | <a href="">2</a> |  /* <-- remove this! :( */
    
    /* :( remove this! --> */ | <a href="">0</a> | <a href="">1</a> | <a href="">2</a>
    
    a:not(:first-child):before {content: ' | '}
    
    for($i=0; $i<3; $i++){
        echo "<a href=\"\">$i</a>" . ($i != 2) ? " | " : "";
    
    <ul class="navlinks">
         <?php foreach($links as $linkName => $linkUrl): ?>
         <li><a href="<?php echo $linkUrl; ?>"><?php echo $linkName; ?></a></li>
         <?php endforeach; ?>
    </ul>
    
    .navlinks > li:after
    { 
        content:"<li>|</li>";
    }
    
    .navlinks > li:last-child:after
    { 
        content:"";
    }