我很确定我在这里或其他地方找不到答案,或者因为我的错不能提出正确的问题,但无论如何,我说我的PHP中有一个for循环是这样的:
for($i=0; $i<3; $i++){
echo "<a href=\"\">$i</a> | ";
}
如何拨打&#34; | &#34;为了得到一个很好的输出而不出现:
<a href="">0</a> | <a href="">1</a> | <a href="">2</a>
INSTEAD OF
<a href="">0</a> | <a href="">1</a> | <a href="">2</a> | <-- remove this! :(
你们真棒!感谢!!!
如果$ i&lt; $ undefinedNumber?
答案 0 :(得分:2)
保持流量,如果它不是第一个,你只需要它:
for ($i = 0; $i < 3; $i++) {
echo $i ? " | " : '', "<a href=\"\">$i</a>";
}
第一个$i
是0
,这意味着它是false
。否则$i
是一个正整数,表示true
。
有时找到另一种描述问题的方法有助于制定更简单的答案。而不是:
<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>
相同形式的解决方案也适用于CSS:
a:not(:first-child):before {content: ' | '}
有时候这比整合PHP和HTML(Example)更容易整合 - 但是它会将|
添加到链接文本或样式(至少在我测试它的chrome中,看起来有些错误)。
答案 1 :(得分:1)
for($i=0; $i<3; $i++){
echo "<a href=\"\">$i</a>"
if ($i != 2) {
echo " | ";
}
}
或
echo "<a href=\"\">0</a>";
for($i=1; $i<3; $i++){
echo " | <a href=\"\">$i</a>"
}
答案 2 :(得分:1)
for($i=0; $i<3; $i++) {
if ($i == 0) {
echo "<a href=\"\">$i</a>;
}
else {
echo " | <a href=\"\">$i</a>"
}
}
答案 3 :(得分:1)
所以你只需要从输出中删除最后一个栏?为什么不在循环时跳过它?像这样:
for($i=0; $i<3; $i++)
{
echo "<a href=\"\">$i</a>";
if($i < 2)
echo "|";
}
这样可以确保条形图仅在前两个链接后显示,而不是在第三个链接后显示。
答案 4 :(得分:1)
$output=array();
for($i=0; $i<3; $i++){
$output[]="<a href=\"\">$i</a>";
}
$ouput=implode(' | ', $ouput);
答案 5 :(得分:1)
$arr = array();
for ($i=0; i<3; i++)
$arr[] = "<a href=''>$i</a>";
echo implode(" | ",$arr);
更紧凑的版本:
echo implode(" | ", array_map(function($x){return "<a href=''>$x</a>";},range(1,3)));
答案 6 :(得分:1)
你也可以这样做:
for($i=0; $i<3; $i++) {
$arr[] = "<a href=\"\">$i</a>";
}
echo implode(' | ',$arr);
答案 7 :(得分:1)
这是编程中常见的特殊情况模式。除了使用if语句或ternary operator
之外,没有内置的解决方法for($i=0; $i<3; $i++){
echo "<a href=\"\">$i</a>" . ($i != 2) ? " | " : "";
答案 8 :(得分:1)
不要在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:"";
}
你永远不应该在php中设置你的HTML样式,这是正确的方法。