PHP删除for循环结果的最后一个逗号

时间:2019-05-17 14:25:14

标签: php loops for-loop comma character-trimming

我试图从for循环的结果中去除最后一个逗号,但是rtrim去除了所有逗号,而不仅仅是最后一个。

这是我尝试过的

$myCoinsCoinReader = array_keys($myCoins);

for ($i = 0; $i < sizeof($myCoins); $i++) {
    $coinReader = $myCoinsCoinReader[$i] . ',';
    $resultReader = rtrim($coinReader, ",");

    echo $resultReader;
};

$ coinReader的结果为BTC,ETH, $ resultReader的结果为BTCETH(所有逗号都消失了)

我该怎么做才能摆脱最后一个逗号?

预先感谢

3 个答案:

答案 0 :(得分:3)

只需使用implode。例如:

$myCoins = array('BTC' => 45, 'ETH' => 12);
$coinReader = implode(',', array_keys($myCoins));
echo $coinReader;

输出:

BTC,ETH

Demo on 3v4l.org

答案 1 :(得分:1)

如果不是循环的第一次迭代,我只建议前置逗号:

for ($i=0; $i < sizeof($myCoins); $i++) {
    if ($i > 0) $coinReader .= ',';
    $coinReader = $myCoinsCoinReader[$i];
}

相对于修整,我更喜欢这种方法,因为它使for循环可以一次构建正确的字符串,而不必添加第二个清除步骤。

答案 2 :(得分:1)

只需检查这是哪个迭代。如果不是最后一个,请添加一个逗号。

$size = sizeof($myCoins);

$output = "";

for ($i = 0; $i < $size; $i++) {
    $output .= $myCoinsCoinReader[$i];
    if ($size - 1 > $i) {
        $output .= ',';
    }
};

echo $output;