如何在除最后一个值之外的所有内容上回显逗号?这是我的代码:
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
ECHO $servdescarrayrow['serv_desc'].",";
}
不应该这样做:
$i = 0;
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
$count = count($servdescarrayrow);
if ($i < $count) {
echo $servdescarrayrow['serv_desc'].",";
$i++;
}
else {
break;
}
}
答案 0 :(得分:9)
另一种选择:
$values = array();
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
$values[] = $servdescarrayrow['serv_desc'];
}
echo implode(',', $values);
答案 1 :(得分:4)
$count = 0;
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
if ($count++ > 0) echo ",";
echo $servdescarrayrow['serv_desc'];
}
答案 2 :(得分:2)
尝试在输出中使用rtrim。例如:
$output = '';
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
$output .= $servdescarrayrow['serv_desc'].",";
}
echo rtrim($output, ',');
答案 3 :(得分:1)
你可以在生成字符串之后删除最后一个逗号:
$str = '';
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
$str .= $servdescarrayrow['serv_desc'].",";
}
$str = substr($str, 0, strlen($str) - 1);
echo $str;
答案 4 :(得分:1)
$array = array();
while ($servdescarrayrow = mysql_fetch_array($servdescarray))
$array[] = $servdescarrayrow['serv_desc'];
ECHO implode(',', $array);
答案 5 :(得分:0)
$started = null;
while ($servdescarrayrow = mysql_fetch_array($servdescarray))
{
ECHO $started.$servdescarrayrow['serv_desc'];
if ( ! isset($started))
{
$started = ",";
}
}
答案 6 :(得分:0)
这是一种可能的方式。不是很优雅,但做的工作是:
$Ix = 0;
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
if ($Ix > 0)
echo ",";
$Ix++;
echo $servdescarrayrow['serv_desc'];
}
答案 7 :(得分:0)
这应该有效:
$i = 0;
$c = mysql_num_rows (
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
$i++;
if ( $i < mysql_num_rows ) echo $servdescarrayrow['serv_desc'].",";
else echo $servdescarrayrow['serv_desc'];
}
答案 8 :(得分:0)
为什么不:
if ($servdescarryrow = mysql_fetch_array($servdescarray)) {
echo $servdescarryrow;
}
while ($servdescarrayrow = mysql_fetch_array($servdescarray)) {
ECHO ",".$servdescarrayrow['serv_desc'];
}
答案 9 :(得分:0)
$out = $mydb->getOne("SELECT group_concat(serv_desc) FROM table");
其中$ mydb是数据库类,getOne()是返回第一行第一列的辅助函数,group_concat()输出限制为1024字节,但可以通过设置适当的变量来更改。
但是当然这个网站的普通爱好者总是会使用通用PHP来完成这样的任务,因为没有人会告诉他有更聪明的方法。
答案 10 :(得分:0)
我想知道为什么第一个问题有十几个答案,没有人回答编辑过的部分。
不,它应该不起作用。因为$ servdescarrayrow变量只代表一个行,所以整个代码没有任何意义。
虽然可以将返回记录的数量纳入流程并获得所需结果,但我怀疑你真的需要它。
更不用说回音的方式,无论如何你总是会有逗号。