删除PHP中的最后一个逗号?

时间:2011-09-11 03:41:39

标签: php

我有这个PHP代码:

foreach( $wpdb->get_results(
) as $key => $row) {

echo "['". $row->DATE . "',". $row->total_sales . "],";

}

这产生了这个:

['09-08-11',0],['09-09-11',0],['09-10-11',0],['09-11-11',0],

如何删除foreach循环中的最后一个逗号?

7 个答案:

答案 0 :(得分:14)

有几种方法:

  1. 将字符串推入数组并使用implode()
  2. 将位添加到字符串中,删除最后一个字符,然后回显字符串
  3. 更明确地迭代,并且在最后一次迭代中,不输出','
  4. 在这些选项中,我可能会使用#1,因为它使代码更加自我记录。

答案 1 :(得分:6)

php有一个trim函数,给它一个字符串和逗号。

$s = trim ($s,",")

答案 2 :(得分:4)

您需要变量来存储逗号状态:

$comma = ""; ## don't need comma before first element
foreach( $wpdb->get_results(
    ) as $key => $row) {

    echo $comma."['". $row->DATE . "',". $row->total_sales . "]";
    $comma = ",";
}

答案 3 :(得分:1)

我通常这样做..

$result = array();

foreach( $wpdb->get_results() as $key => $row ){

    $result[] = "['". $row->DATE . "',". $row->total_sales . "]";

}

echo implode( ',', $result );

它有点简洁,(但由于临时数组可能会导致内存效率降低)。

答案 4 :(得分:1)

将您的字符串放入 substr() 函数

$string = "";
while ($row = mysql_fetch_array($result)) {
  $string .= $name . ', ';
}
echo substr($string, 0, strlen($string) - 2);

答案 5 :(得分:0)

我喜欢内心的想法,但我经常使用三元运算符来保持一切简洁。许多人不喜欢三元,但它是一种众所周知的多种语言结构,所以我使用它。在这种情况下,如果我在第一次迭代时$ results将为空,所以我不插入逗号,否则我在新数据之前的内容中放了一个逗号:

$results = '';
foreach( $wpdb->get_results() as $key => $row) {

    $results .= (empty($results) ? '' : ',') . "['". $row->DATE . "',". $row->total_sales . "]";

}
echo $results;

答案 6 :(得分:-2)

$numItems = count($wpdb->get_results());
$i = 0;

foreach( $wpdb->get_results() as $key => $row) {
if($i+1 == $numItems) {
    echo "['". $row->DATE . "',". $row->total_sales . "]";
  }
else{
echo "['". $row->DATE . "',". $row->total_sales . "],";

}
  $i++;
}
相关问题