我想在我的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
任何帮助..
答案 0 :(得分:1)
要从开始(左侧)删除+
符号,您可以使用ltrim()
功能:
示例:强>
$Yourstring = '+45+10';
echo ltrim($Yourstring,'+'); //45+10
函数ltrim()
的第二个参数将从字符串中删除起始+
。
<强> From PHP Manual 强>
ltrim - 从一开始删除空格(或其他字符) 串
答案 1 :(得分:1)
答案 2 :(得分:1)
我会破坏数据,因此我可以将其他列中的数据存储在其他变量中。
$marks = array();
while($row = mysql_fetch_assoc($studentcat)) {
$marks[] = $row['marks'];
}
echo implode('+', $marks);
答案 3 :(得分:1)
我的朋友这很简单,使用php JOIN()
...
<?php
$marksArray= array()l
while ($row_studentcat = mysql_fetch_assoc($studentcat))
{
$marksArray[] = $row_studentcat['marks'];
}
echo join('+',$marksArray);
?>
答案 4 :(得分:1)
更快的方法是将元素连接成一个字符串,并使用此方法删除第一个+:
substr($string, 1);
与 implode 比较快3倍,与 ltrim 比较快一点,因为在这种情况下仅更改索引数组 ,这比删除元素更快
此外,我想对此代码的两个重要问题发表评论:
如果 mysql_fetch_assoc 返回空结果,则会出现错误,因为您将尝试访问未存在的索引数组,更好地使用而(){}
方法 mysql_fetch_assoc 已弃用且已在PHP7中删除,您的代码将来会出现问题:http://php.net/manual/es/function.mysql-fetch-assoc.php
< / LI> 醇>