Удалить последний символ из строки [дубликата]

531

Возможный дубликат:
PHP - удалить последний символ, если это период?

Какой самый быстрый способ удалить последний символ из строки?

У меня есть строка вроде

a,b,c,d,e,

Я хотел бы удалить последний ',' и вернуть оставшуюся строку

OUTPUT: a,b,c,d,e

Какой самый быстрый способ сделать это?

  • 28
    если эта строка конкатанируется циклом, вы можете использовать «implode», она будет конкатенирована без запятой
  • 0
    @Tufan Barış Yıldırım: конкатенация строк не в цикле
Показать ещё 7 комментариев
Теги:

4 ответа

1042
Лучший ответ

Сначала я пробую без пробела rtrim($arraynama,","); и получаю результат ошибки.

Затем я добавляю пробел и получаю хороший результат: $newarraynama=rtrim($arraynama,", ");

  • 4
    Как? Можете ли вы привести своего рода пример
  • 4
    @IM Просто замените $string на ваши данные и просмотрите все это: echo rtrim("a,b,c,d,e,", ",");
Показать ещё 10 комментариев
557

Вы можете использовать substr

echo substr('a,b,c,d,e,', 0, -1);
# => 'a,b,c,d,e'
  • 25
    Это хороший способ. Я хотел удалить последнюю запятую из строки вроде: «a, b, c, d ,,», и это правильное решение, потому что если вы используете rtrim (), это удалит две последние запятые.
  • 0
    Это сработало очень хорошо для меня, очень хороший метод, я понятия не имел, что вы можете использовать отрицательное число там и начать с 0. Я согласен с приведенным выше комментарием, это гораздо лучше, чем rtrim, у меня была похожая проблема, где я не сделал хотите удалить последние символы, кроме слова, из строки SQL в конце строки только как «И», поэтому я использовал это с substr («sqlstatement», 0, -7); удалить последнее И в последовательности пунктов ГДЕ И, которые я писал. Работал как шарм :).
Показать ещё 11 комментариев
85

Альтернативой substr является следующая функция:

substr_replace($string, "", -1)

Это голодание? Я не знаю, но я готов поспорить, что эти альтернативы все так быстро, что это просто не имеет значения.

  • 2
    проблема с «так быстро, это не имеет значения» заключается в том, что это может быть в цикле. Представьте, что код выполняется 50 раз для каждой буквы в длинном тексте. Внезапно каждый маленький кусочек производительности имеет значение.
  • 1
    @ Пока я не уверен, работает ли он так, я не проверял источник, но я предполагаю, что substr_replace($str, $replacement, $start[, $length]) последняя пара параметров ограничивает буквы " хирургическое вмешательство ". Т.е. substr inging будет только анализировать / заменять символы подстроки (в данном случае сливает). После того, как это сделано, остальная часть неизмененной строки объединяется.
8

Вы можете использовать

substr(string $string, int $start, int[optional] $length=null);

См. substr в документах PHP. Он возвращает часть строки.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню