我正在使用此代码
<?php
foreach($rows as $row) {
echo "<a href=index.html?id=" . $row['id'] . ">" . $row['name'] . "</a>, ";
}
?>
问题在于,即使是最后一个,<space>
,也会添加逗号和空格($row
)。防止这种情况的最简单方法是什么?我有一个想法来检查数组的大小等但不确定这是否会使它复杂化。
答案 0 :(得分:5)
有一个更简单的解决方案
<?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 :(得分:4)
你可以这样做 -
<?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 的答案是另一种选择。
答案 2 :(得分:1)
您可以通过两种方式使用字符串来完成:
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);
?>