我想在do while循环结果之间显示一个加号,如下所示:
如果我得到两个结果,我希望它显示为例如46+56
,如果三个结果显示为45+76+89
。
我应该把加号+放在哪里,这样它就不会显示在末尾了?
<?php do { ?>
+ <?php echo $row_studentcat['marks']; ?>
<?php } while ($row_studentcat = mysql_fetch_assoc($studentcat)); ?>
上面的代码将显示结果为+45+56,但我希望它显示为45+56
任何帮助。。
您应该使用ltrim()函数:
echo ltrim($s,'+');
否则,rtrim()将执行相同的右侧
要从起始(左侧)移除+
符号,可以使用ltrim()
函数:
示例:
$Yourstring = '+45+10';
echo ltrim($Yourstring,'+'); //45+10
函数ltrim()
的第二个参数将从字符串中删除起始+
。
来自PHP手册:
ltrim—从字符串
我会内爆数据,这样我就可以将其他列的数据存储在其他变量中。
$marks = array();
while($row = mysql_fetch_assoc($studentcat)) {
$marks[] = $row['marks'];
}
echo implode('+', $marks);
这很简单,我的朋友,使用php JOIN()
。。。
<?php
$marksArray= array()l
while ($row_studentcat = mysql_fetch_assoc($studentcat))
{
$marksArray[] = $row_studentcat['marks'];
}
echo join('+',$marksArray);
?>
更快的方法是将元素连接成字符串,并使用以下方法删除第一个+:
substr($string, 1);
与相比,内爆快3倍,与ltrim相比快一点,因为在这种情况下,我们只更改索引数组,这比删除元素快
此外,我想评论一下该代码的两个重要问题:
如果mysql_fetch_assoc返回空结果,则会出现错误,因为您将尝试访问不存在的索引数组,请更好地使用while(){}
方法mysql_fetch_assoc已被弃用,并在PHP7中被删除,您的代码将来会出现问题:http://php.net/manual/es/function.mysql-fetch-assoc.php