php执行while循环,在结果之间显示加号


php do while loop, display plus sign between results

我想在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相比快一点,因为在这种情况下,我们只更改索引数组,这比删除元素快

此外,我想评论一下该代码的两个重要问题

  1. 如果mysql_fetch_assoc返回空结果,则会出现错误,因为您将尝试访问不存在的索引数组,请更好地使用while(){}

  2. 方法mysql_fetch_assoc已被弃用,并在PHP7中被删除,您的代码将来会出现问题:http://php.net/manual/es/function.mysql-fetch-assoc.php