我正在使用此代码
<?php
foreach($rows as $row) {
echo "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>, ";
}
?>
问题是逗号和空格(,<space>
)甚至被添加到最后一个$row
。防止这种情况的最简单方法是什么?我有一个想法来检查数组等的大小,但不确定这是否会使它过于复杂。
你可以
这样做 -
<?php
$links= array();
foreach($rows as $row) {
$links[]= "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>";
}
echo implode(', ', $links);
?>
或
<?php
$i = 0;
$total = count($rows);
foreach($rows as $row) {
echo "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>";
$i++;
if($i < $total)
echo ",";
}
?>
或者RiggsFolly的答案是另一种选择。
有一个更简单的解决方案
<?php
$htm = '';
foreach($rows as $row) {
$htm .= "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>, ";
}
rtrim($htm,', ');
echo $htm;
?>
如果你想变得复杂,那么你可以做:-
<?php
$crows = count($rows) - 1;
foreach($rows as $i => $row) {
echo "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>";
echo ( $crows > $i ) ? ', ' : '';
}
?>
您可以通过两种方式使用字符串来做到这一点:
1) 使用rtrim()
<?php
$str = '';
foreach($rows as $row) {
$str .= "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>, ";
}
echo rtrim($str, ', ');
?>
2)获取链接数组,并按空格和逗号implode()
。
<?php
$arr = array();
foreach($rows as $row) {
$arr[] = "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>, ";
}
echo implode(', ', $arr);
?>