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

时间:2016-04-12 06:49:03

标签: php do-while

我想在我的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

任何帮助..

5 个答案:

答案 0 :(得分:1)

要从开始(左侧)删除+符号,您可以使用ltrim()功能:

示例:

$Yourstring = '+45+10';
echo ltrim($Yourstring,'+'); //45+10

函数ltrim()的第二个参数将从字符串中删除起始+

<强> From PHP Manual

  

ltrim - 从一开始删除空格(或其他字符)   串

答案 1 :(得分:1)

您应该使用ltrim()功能:

echo ltrim($s,'+');

否则,rtrim()将做同样的右侧

答案 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 比较快一点,因为在这种情况下仅更改索引数组 ,这比删除元素更快

此外,我想对此代码的两个重要问题发表评论:

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

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

    < / LI>