Удалить последнюю часть запятой в foreach в PHP? - PullRequest
0 голосов
/ 11 декабря 2018

Как я могу предотвратить вставку запятой в конце title3?

foreach ($_POST['titles'] AS $title) {
    echo "{$title},";
}; 

Результат:

title1,title2,title3,

Обновление : Этоприходит как данные формы, это массив.Не подходи сюда;title1,title2,title3,

<form>
<select name="titles[]">
<option>title1</title>
<option>title2</title>
<option>title3</title>
<option>title4</title>
</select>
</form>

Ответы [ 4 ]

0 голосов
/ 11 декабря 2018

Я согласен с другими ответами - implode () - это путь.Но если вы не хотите / продолжайте идти по пути, по которому вы идете ...

$output = "";
foreach ($_POST['titles'] AS $title) {
    $output .= "{$title},";
};
echo substr($output, 0, -1);
0 голосов
/ 11 декабря 2018

Вы должны использовать implode вместо.

$string = implode(',', $_POST['titles']);
0 голосов
/ 11 декабря 2018

похоже, что вы можете вообще пропустить foreach и просто сделать это:

echo implode(',',$_POST['titles']);
0 голосов
/ 11 декабря 2018

просто используйте implode() - что эквивалентно .join():

echo implode(',', $_POST['titles']);

или просто:

echo implode($_POST['titles']);

, если вы действительно хотите использовать цикл - индекстребуется для определения последнего элемента.цикл foreach не предоставляет никакого индекса для сравнения;Вот почему цикл for вполне подходит:

// $titles = explode(',', $_POST['titles']);
$titles = $_POST['titles'];
for($i=0; $i < sizeof($titles); $i++) {
    echo $titles[$i];
    if($i+1 != sizeof($titles)){echo ',';}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...