как удалить запятую с конца строки?

Я хочу удалить запятую с конца строки. Как сейчас, я использую

$string = substr($string,0,-1); 

но это удаляет только последний символ строки. Я добавляю строку динамически, поэтому иногда в конце строки нет запятой. Как я могу заставить PHP удалить запятую с конца строки, если она есть в конце?

 $string = rtrim($string, ','); 

Документы для rtrim здесь

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

 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); 

это решает проблемы с конечным и двойным разделителем, которые обычно возникают при конкатенации

взгляните на функцию rtrim

 rtrim ($string , ","); 

в приведенной выше строке удаляется символ, если последний символ является запятой

 if(substr($str, -1, 1) == ',') { $str = substr($str, 0, -1); } 

http://php.net/manual/en/function.substr.php

rtrim ($ string, ","); это самый простой способ.

Предположим, что с:

 if(substr($string, -1)==",") 

Простое регулярное выражение будет работать

 $string = preg_replace("/,$/", "", $string) 

В конце моей струны у меня было надоедливое «невидимое» пространство, и мне пришлось делать это

  $update_sql=rtrim(trim($update_sql),','); 

Но решение выше лучше

  $update_sql=rtrim($update_sql,', ');