PHP удалить последнюю запятую для результата цикла - PullRequest
0 голосов
/ 17 мая 2019

Я пытался избавиться от последней запятой из моего результата из цикла 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 ]

3 голосов
/ 17 мая 2019

Просто используйте implode.Например:

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

Вывод:

BTC,ETH

Демонстрация на 3v4l.org

1 голос
/ 17 мая 2019

Просто проверьте, какая это итерация. Если он не последний, добавьте запятую.

$size = sizeof($myCoins);

$output = "";

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

echo $output;

1 голос
/ 17 мая 2019

Я рекомендую только добавляя запятую, если это не первая итерация цикла:

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

Я предпочитаю этот подход правому усечению, потому что он позволяет циклу for создаватьисправить строку за один раз, вместо того, чтобы добавлять второй шаг очистки.

...