2017-10-10 70 views
1

刪除最後一個逗號這裏是我的腳本在對於與Foreach循環

for ($i = 0; $i < $compatibilitycount; $i++) { 
foreach ($xml->Item->ItemCompatibilityList->Compatibility[$i] as $compatibility) { 
    if ($compatibility->Value != '') { 
     $value = $compatibility->Value . ','; 
     echo $value; 
    } 
} 
    echo '<br />'; 
} 

,輸出像這樣

2006,Chrysler,Sebring,Touring Sedan 4-Door,2.7L 2700CC 167Cu. In. V6 FLEX DOHC Naturally Aspirated, 
2006,Chrysler,Sebring,Touring Sedan 4-Door,2.7L 2700CC 167Cu. In. V6 GAS DOHC Naturally Aspirated, 
2006,Chrysler,Sebring,TSi Sedan 4-Door,2.7L 2700CC 167Cu. In. V6 GAS DOHC Naturally Aspirated, 
2006,Dodge,Charger,Base Sedan 4-Door,2.7L 2700CC 167Cu. In. V6 GAS DOHC Naturally Aspirated, 

我有一個艱難的時間,除去每一行後面的逗號CSV文件。

我看過去試過的問題試過用implode()rtrim()並把$value放到一個數組中,但沒有任何工作。這有點讓我發瘋,因爲我確信解決方案很簡單。

我的目標是將輸出保存爲csv(但首先我只是試圖正常地回顯輸出)。

+1

http://php.net/manual/en/function.fputcsv.php – bassxzero

+0

請出示implode和rtrim你用過,沒有工作 –

+3

爲什麼沒有人能夠尋找PHP內置的[fputcsv()](http://www.php.net/manual/en/function.fputcsv.php),因爲它在[Filesystem functions](http:// www。 php文檔的php.net/manual/en/ref.filesystem.php)部分 –

回答

-1

不要立即顯示文本。 「它緩存」,然後顯示它,但無論是substrrtrim

for ($i = 0; $i < $compatibilitycount; $i++) { 
    $result = ''; 
    foreach ($xml->Item->ItemCompatibilityList->Compatibility[$i] as $compatibility) { 
     if ($compatibility->Value != '') { 
      $result .= $compatibility->Value . ','; 
     } 
    } 
    echo substr($result, 0, -1) . '<br />'; 
    // or echo rtrim($result, ',') . '<br />'; 
} 
1

刪除最後一個字符作爲也有人指出有更好的方式使用PHP函數創建一個CSV,但如果你還是要去在這裏你的方式是你的代碼編輯一下,以便它的工作,而無需使用rtrimarray存儲結果:

for ($i = 0; $i < $compatibilitycount; $i++) { 
    $first = true; 

    foreach ($xml->Item->ItemCompatibilityList->Compatibility[$i] as $compatibility) { 
     if ($compatibility->Value != '') { 
      echo ($first ? '' : ',') . $compatibility->Value; 

      $first = false; 
     } 
    } 
}