PHP-从最后一个循环中删除逗号

PHP-从最后一个循环中删除逗号,php,while-loop,Php,While Loop,我有一个PHP while循环,我想从echo'],'中删除最后一个逗号,如果是最后一个循环 while($ltr = mysql_fetch_array($lt)){ echo '['; echo $ltr['days']. ' ,'. $ltr['name']; echo '],'; } 创建一个包含元素的数组,让它们看起来像array=([ELE

我有一个PHP while循环,我想从
echo'],'中删除最后一个逗号
如果是最后一个循环

            while($ltr = mysql_fetch_array($lt)){
                echo '[';
                echo $ltr['days']. ' ,'. $ltr['name'];
                echo '],';
            }

创建一个包含元素的数组,让它们看起来像
array=([ELEMENT INFO],[ELEMENT INFO],[ELEMENT INFO])
然后
使用逗号对数组进行内爆

$str = '';
while($ltr = mysql_fetch_array($lt)){
    $str .= '[';
    $str .= $ltr['days']. ' ,'. $ltr['name'];
    $str .= '],';
}

echo rtrim($str, ",");

这将从字符串中删除最后一个

检查您有多少个条目,创建一个“计数器”,并设置一个条件,仅在逗号不是最后一个循环时放置逗号

$result=mysql\u fetch\u数组($lt);
$result = mysql_fetch_array($lt);
for ($i=0;$i<=(count($result)-1);$i++) {
    $ltr = $result[$i];
    echo '[';
    echo $ltr['days']. ' ,'. $ltr['name'];
    echo ']';
    if(!count($result)-1 == $i){
        echo ',';
    }
}

对于($i=0;$i将响应另存为变量,而不是回显它,然后使用substr删除结尾处的最后一个字符

      $response = "";
       while($ltr = mysql_fetch_array($lt)){
            $response .= '[';
            $response .= $ltr['days']. ' ,'. $ltr['name'];
            $response .= '],';
        }
      echo substr($response, 0, -1);

我认为系统解决方案如下:

$separator = '';
while($ltr = mysql_fetch_array($lt)){
    echo $separator;
    echo '[';
    echo $ltr['days']. ' ,'. $ltr['name'];
    echo ']';
    if (!$separator) $separator = ', ';
}
无需调用
count()
,无需额外迭代
内爆()
,无需额外的字符串操作,可用于任何(不可预测的)数量的结果。

//此操作有效
//this one works
$result = mysql_fetch_array($lt);
for ($i=0;$i<=(count($result)-1);$i++) {
    $ltr = $result[$i];
    echo '[';
    echo $ltr['days']. ' ,'. $ltr['name'];
    echo ']';
    if(count($result)-1 != $i){
        echo ',';
    }
}
$result=mysql\u fetch\u数组($lt);
对于($i=0;$ido不使用mysql.*。试试PDO::这个方法会产生最好的代码,我没有任何理由认为它会比任何其他不那么优雅的方法效率低,除了可能有大量元素。我喜欢这个答案,而不是使用rtrim,因为你不必维护一个与不推荐使用循环中的ds.mysql,请使用mysqli或PDO
$separator = '';
while($ltr = mysql_fetch_array($lt)){
    echo $separator;
    echo '[';
    echo $ltr['days']. ' ,'. $ltr['name'];
    echo ']';
    if (!$separator) $separator = ', ';
}
//this one works
$result = mysql_fetch_array($lt);
for ($i=0;$i<=(count($result)-1);$i++) {
    $ltr = $result[$i];
    echo '[';
    echo $ltr['days']. ' ,'. $ltr['name'];
    echo ']';
    if(count($result)-1 != $i){
        echo ',';
    }
}