2011-09-11 76 views
1

我有這樣的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循環?

回答

6

php有一個修剪功能,給它一個字符串和逗號。

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

有幾個方法:

  1. 推字符串到一個數組和使用破滅()
  2. 位添加到字符串,刪除最後一個字符,然後回顯字符串
  3. 迭代更明確,並在最後一次迭代,不輸出「」

這些選項中,我可能會使用#1,因爲它使代碼更加自我記錄。

+5

Upvote for approach#1 。 –

4

你需要變量來存儲逗號狀態:

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

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

謝謝你,你的代碼可以創造奇蹟:) – Shoebox

+0

我在php循環中的for(){'。謝謝 – nicogaldo

-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++; 
} 
+1

這段代碼是多餘的 –

1

我通常做這種方式..

$result = array(); 

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

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

} 

echo implode(',', $result); 

它更簡潔一點,(但也許更多的內存由於臨時陣列效率低下)。

0

我喜歡內爆的想法,但我經常使用三元操作符保持一切簡潔。許多人不喜歡三元論,但它是一種非常着名的多語言構造,所以我使用它。在這種情況下,如果我在第一次迭代中$結果將爲空,所以我不插入逗號,否則我在新數據之前在內容中放置逗號:

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

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

} 
echo $results;