0

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

这是我尝试过的

$myCoinsCoinReader = array_keys($myCoins);

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

    echo $resultReader;
};

$coinReaderBTC,ETH, 的结果是 $resultReader 的结果是BTCETH(所有逗号都消失了)

我能做些什么来只去掉最后一个逗号?

提前致谢

4

3 回答 3

3

只需使用implode. 例如:

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

输出:

BTC,ETH

3v4l.org 上的演示

于 2019-05-17T14:30:32.237 回答
1

如果它不是循环的第一次迭代,我建议只在前面加一个逗号:

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

我更喜欢这种方法而不是右修剪,因为它可以让 for 循环一次性构建正确的字符串,而不必添加第二个清理步骤。

于 2019-05-17T14:29:32.207 回答
1

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

$size = sizeof($myCoins);

$output = "";

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

echo $output;

于 2019-05-17T14:30:23.803 回答