Подтвердить что ты не робот

PHP Добавить запятую для каждого элемента, но последний

У меня есть петля вроде

foreach ($_GET as $name => $value) {
    echo "$value\n";
}

И я хочу добавить запятую между каждым элементом, чтобы она закончилась так.

var1, var2, var3

Поскольку я использую foreach, я не могу сказать, на каком итерационном номере я нахожусь.

Как я могу это сделать?

4b9b3361

Ответ 1

Извините, я не задал свой вопрос должным образом. Тент, который работал у меня, -

implode(', ', $_GET);

Спасибо, giodamelio

Ответ 2

Просто создайте свой вывод с помощью foreach, а затем взорвите этот массив и выведите результат:

$out = array();
foreach ($_GET as $name => $value) {
    array_push($out, "$name: $value");
}
echo implode(', ', $out);

Ответ 3

Вот так:

$total = count($_GET);
$i=0;
foreach ($_GET as $name => $value) {
    $i++;
    echo "$name: $value";
    if ($i != $total) echo', ';
}

Объяснено: вы находите общее количество всех значений по count(). При запуске цикла foreach() вы считаете итерации. Внутри цикла вы говорите ему "эхо", когда итерация не является последней (не равна суммарному счету всех значений).

Ответ 4

$comma_separated = implode(", ", $_GET);

echo $comma_separated;

вы можете использовать implode и достичь этого

Ответ 5

Вы также можете сделать это следующим образом:

$output = '';
foreach ($_GET as $name => $value) {
    $output = $output."$name: $value, ";
}
$output = substr($output, 0, -2);

Это просто делает одну огромную строку, которую вы можете выводить. Различные методы для разных стилей, действительно.

Ответ 6

Я обычно делал бы что-то вроде этого (псевдокод):

myVar

for... {
    myVar = i + ","
}

myVar = trimOffLastCharacter(myVar)

echo myVar