как удалить запятую с конца строки?
Я хочу удалить запятую с конца строки. Как это сейчас я использую
$string = substr($string,0,-1);
но это только удаляет последний символ строки. Я добавляю строку динамически, поэтому иногда в конце строки нет запятой. Как я могу заставить PHP удалить запятую с конца строки, если она есть в конце?
10 ответов:
Это классический вопрос, с двумя решениями. Если вы хотите удалить ровно одну запятую, которая может быть или не быть там, используйте:
if (substr($string, -1, 1) == ',') { $string = substr($string, 0, -1); }
Если вы хотите удалить все запятые из конца строки, используйте более простой:
$string = rtrim($string, ',');
функция rtrim (и соответствующая ltrim для левой обрезки) очень полезна, поскольку вы можете указать диапазон символов для удаления, т. е. для удаления запятых и конечных пробелов вы бы написали:
$string = rtrim($string, ", \t\n");
Я думаю, вы объединяете что-то в цикле, например
foreach($a as $b) $string .= $b . ',';
гораздо лучше-собрать элементы в массив, а затем объединить его с разделителем нужно
foreach($a as $b) $result[] = $b; $result = implode(',', $result);
это решает проблемы трейлинга и двойного разделителя, которые обычно возникают при конкатенации
Если вы объединяете что-то в цикле, вы можете сделать это таким образом:
$coma = ""; foreach($a as $b){ $string .= $coma.$b; $coma = ","; }
взгляните на функцию rtrim
rtrim ($string , ",");
в приведенной выше строке будет удален символ, если последний символ является запятой