У меня есть строка (а не массив, это загрузка слов, хранящихся в одной строке), и я хотел бы поместить запятую после каждого слова, ставя один за последним словом. У меня есть;PHP: добавить запятую после каждого слова (кроме финала)
echo str_replace(' ', ', ', $stilltodo);
но по какой-то причине добавляет пробел перед запятой (и после тоже, но это право), а также один в конце тоже. Как я могу изменить его, чтобы работать, как я хочу.
Пример из 'базы' Строка
French History Maths Physics Spanish Chemistry Biology English DT Maths History DT Spanish English French RS
Пример токового выхода с Кодексом выше
French , History , Maths , Physics , Spanish , Chemistry , Biology , English , DT , Maths , History , DT , Spanish , English , French , RS ,
Спасибо. Я помещаю 'echo substr_replace ($ stilltodoplain," ", - 2);' на конец кому-то другому, имеющему ту же проблему, чтобы избавиться от последней запятой, но я предполагаю, что вы правы в этой проблеме с дополнительными пробелами поскольку это единственное, что работает. Еще раз спасибо. –
Регулярное выражение здесь излишне. Вы действительно должны использовать метод 'implode (explode()) или' rtrim() ', как показано в моем ответе. Регулярное выражение не обязательно плохое, но оно добавляет лишние накладные расходы и немного улучшает смысл кода. – Bojangles
@JamWaffles: Вы можете считать это излишним, если это часть функции, которая может запускаться десятки тысяч раз в час, но для того, что кажется разовой проблемой, я не думаю, что это действительно имеет значение. – Crontab