删除For&中的最后一个逗号Foreach循环

时间:2017-10-10 17:47:53

标签: php csv

这是我的剧本

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

输出像这样的csv

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,

我很难从每一行删除逗号。

我查看过去曾尝试使用implode() rtrim()的问题并将$value放入数组中,但没有任何效果。这有点让我发疯,因为我确信解决方案很简单。

我的目标是将输出保存为csv(但首先我只是尝试正常回显输出)。

2 个答案:

答案 0 :(得分:1)

正如其他人所指出的那样,有更好的方法可以使用本机PHP函数创建CSV,但是如果你仍然希望在这里进行编辑,那么你的代码可以在不使用rtrim的情况下进行编辑或者array来存储结果:

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

答案 1 :(得分:-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 />';
 }