2017-10-10 72 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; 
     } 
    } 
}