删除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循环中的最后一个逗号?
有几种方法:
- 将string推入数组,并使用implode()
- 将这些位添加到string中,删除最后一个字符,然后回显string
- 迭代更明确,在最后一次迭代中,不要输出','
在这些选项中,我可能会使用#1,因为它使代码更加自我logging。
PHP有一个修剪function,给它一个string和逗号。
$s = trim ($s,",")
你将需要variables来存储逗号状态:
$comma = ""; ## don't need comma before first element foreach( $wpdb->get_results( ) as $key => $row) { echo $comma."['". $row->DATE . "',". $row->total_sales . "]"; $comma = ","; }
我通常这样做..
$result = array(); foreach( $wpdb->get_results() as $key => $row ){ $result[] = "['". $row->DATE . "',". $row->total_sales . "]"; } echo implode( ',', $result );
这是一个更简洁,(但可能由于临时arrays更多的内存效率低下)。
我喜欢内在的想法,但我经常使用三元运算符来保持一切简洁。 很多人不喜欢这个三元组,但是它是很多语言中非常有名的构造,所以我使用它。 在这种情况下,如果我在第一次迭代中$结果将是空的,所以我不插入逗号,否则我把新的数据之前的内容逗号:
$results = ''; foreach( $wpdb->get_results() as $key => $row) { $results .= (empty($results) ? '' : ',') . "['". $row->DATE . "',". $row->total_sales . "]"; } echo $results;
$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++; }