Как удалить последнюю запятую из строки с помощью php?
Привет, я использую цикл для получения значений из моей базы данных, и мой результат:
Я хочу удалить запятую после последнего значения цикла.
Использовать функцию rtrim
Второй параметр указывает символ, который нужно удалить.
$string = "'name', 'name2', 'name3',"; $string = rtrim($string,',');
Попробуйте приведенный ниже код:
$my_string = "'name', 'name2', 'name3',"; echo substr(trim($my_string), 0, -1);
используйте этот код, чтобы удалить последний символ строки.
Второй параметр указывает, что запятая будет удалена с правой стороны.
Вы можете использовать функцию substr чтобы удалить это.
$t_string = "'test1', 'test2', 'test3',"; echo substr($t_string, 0, -1);
Это повлияет на ваш скрипт, если вы работаете с многобайтовым текстом, из которого вы подстроки. Если это так, я настоятельно рекомендую включить функции mb_ * в вашем php.ini или сделать это ini_set(«mbstring.func_overload», 2);
$string = "'test1', 'test2', 'test3',"; echo mb_substr($string, 0, -1);
Сначала попробуйте без пробела rtrim ($ arraynama, «,»); и получить результат ошибки.
Затем я добавляю пробел и получаю хороший результат:
$newarraynama=rtrim($arraynama,", ");
$commaseparated_string = name,name2,name3,; $result = rtrim($commaseparated_string,',');
как удалить запятую с конца строки?
но это удаляет только последний символ строки. Я добавляю строку динамически, поэтому иногда в конце строки нет запятой. Как я могу заставить PHP удалить запятую с конца строки, если она есть в конце?
Документы для rtrim здесь
Это классический вопрос с двумя решениями. Если вы хотите удалить ровно одну запятую, которая может быть или не быть, используйте:
Если вы хотите удалить все запятые из конца строки, используйте простую:
Функция rtrim (и соответствующая ltrim для левой обрезки) очень полезна, так как вы можете указать диапазон символов для удаления, то есть удалить запятые и конечные пробелы, которые вы бы пишете:
я думаю, вы контактируете что-то в цикле, например
гораздо лучше собирать элементы в массиве, а затем присоединяться к нему с помощью разделителя, который вам нужен
foreach($a as $b) $result[] = $b; $result = implode(',', $result);
это решает проблемы с конечным и двойным разделителем, которые обычно возникают при конкатенации
взгляните на функцию rtrim
в приведенной выше строке удаляется символ, если последний символ является запятой
rtrim ($ string, «,»); это самый простой способ.
Простое регулярное выражение будет работать
$string = preg_replace("/,$/", "", $string)
В конце моей струны у меня было надоедливое «невидимое» пространство, и мне пришлось делать это
$update_sql=rtrim(trim($update_sql),',');
$update_sql=rtrim($update_sql,', ');
Как убрать запятую из строки
у меня на сайте фраза — » Вы можете купить продукцию производителя Lenovo, .»
где — Lenovo — берется из базы. Производителей может быть много. а вот как сделать чтобы запятая в конце не выводилась.
вот окончание предложения
while($row_sort_proizv = mysql_fetch_assoc($query_count_proizv)) { echo $row_sort_proizv['name'].', '; // здесь беру производителя из базы и перечисляю через запятую } echo '.'; //а здесь точка на конце предложения
Как убрать последнюю запятую в цикле
Есть БД, от туда берется число сколько раз должен повторятся цикл, как сделать так, чтобы последней.
как извлечь данные в виде строки через запятую?
ГОспода, мне нужно извлечь данные из базы в виде строки. она будет предствлять из себя перечисление.
Убрать запятую из строки
Есть код, который берет строку из Edit var stroka: string; begin stroka := Edit1.Text;.
Убрать запятую в конце строки. Очень нужно
Доброго времени суток, полный чайник в access, и вопрос довольно нелепый, перейдем к вопросу.
Удалить запятую конце строки php
Сформировали список тэгов, расставляя после каждого «,». После последнего тоже запятая… надо убрать.
Наверное многие это уже знают, но всё же:
$str = 'tag1, tag2, tag3,'; echo substr($str, 0, -1);
Кстати, это можно решить ещё во время формирования строки.
Комментарии RSS по email OK
Можно ещё проще $str = ‘tag1, tag2, . tagN,’; $str = trim($str, ‘,’); Как решить во время форматирования я тоже отписал свой вариант в той записи.
Позволю с вами совсем не согласиться. Для этого есть chop() (который алиас rtrim()) Вызывается легко и непринужденно chop($str, ‘,’); А еще лучше chop($str, ‘ ,’); Объясню почему — в конце строки у вас может получиться так, что будет мусор, типа » , «. Тогда вам придется делать echo substr(trim($str), 0, -1); — что есть ненужная нагрузка, когда есть chop, которому мы в конце скармливаем список символов для рубки 🙂
Ktulhu trim тоже принимает список символов, но chop конечно более подходящая штука для данного случая.
А зачем формировать список тегов именно так, не удобней ли: $tags = array(‘tag1’, ‘tag2’, ‘tag3’); echo implode(‘, ‘, $tags);
Чаще всего удобней, но иногда не выходит. Например, если массив многомерный… это не обязательно тэги.
$links = array( 0 => array( 'name' => 'link1', 'link' => 'http://name1.com/'), 1 => array( 'name' => 'link2', 'link' => 'http://name2.com/'), );
$result = array(); foreach ( $links as $v ) $result[] = '' . $v[ 'link' ] . '">' . $v[ 'name' ] . ' '; > $result = implode( ', ', $result );
Splurov Так немного медленней, чем с формированием строки и chop(). Проявляется при обработке массива от 1000 элементов.
Ну я то именно такой массив для тегов и представлял, но не хотел менять исходные данные. Потестил тут немного для массива вида:
$links = array( 0 => array( 'name' => 'link1', 'link' => 'http://name1.com/'), 1 => array( 'name' => 'link2', 'link' => 'http://name2.com/'), );~~~ три варианта: 1) [code=php]function html_link($v) return '' . $v[ 'link' ] . '">' . $v[ 'name' ] . ' '; > $result = implode(', ', array_map('html_link', $links));
2) как предложил Splurov [code=php]$result = array(); foreach ( $links as $v ) < $result[] = '' . $v[ 'name' ] . ''; > $result = implode( ‘, ‘, $result );
[php] $result = »; foreach ( $links as $v ) < $result .= '' . $v[ 'name' ] . ', '; > $result = chop($result, ‘ ,’); ~~~ Для массива $links из 10 элементов (как наиболее типичный для тегов) и 100000 повторений получилось (в секундах все): 1) 7.84984397888 2) 2.80158305168 3) 2.40084600449, просто сборка без chop 1.68192100525function html_link($v) return '' . $v[ 'link' ] . '">' . $v[ 'name' ] . ' '; > $result = implode(', ', array_map('html_link', $links));
$result = array(); foreach ( $links as $v ) $result[] = '' . $v[ 'link' ] . '">' . $v[ 'name' ] . ' '; > $result = implode( ', ', $result );
Как удалить последнюю запятую из строки с помощью php?
Здравствуйте, я использую цикл для получения значений из моей базы данных, и мой результат выглядит так:
Я хочу удалить запятую после последнего значения цикла.
10 ответов
Использование rtrim функция
Второй параметр указывает символ, который нужно удалить.
$string = "'name', 'name2', 'name3',"; $string = rtrim($string,',');
$my_string = "'name', 'name2', 'name3',"; echo substr(trim($my_string), 0, -1);
используйте этот код, чтобы удалить последний символ строки.
Ты можешь использовать substr функция, чтобы удалить это.
$t_string = "'test1', 'test2', 'test3',"; echo substr($t_string, 0, -1);
Второй параметр указывает, что запятая будет удалена с правой стороны.
Для этого лучше использовать имплозу. Внушить легко и круто:
$array = ['name1', 'name2', 'name3']; $str = implode(', ', $array);
Это повлияет на ваш скрипт, если вы работаете с многобайтовым текстом, из которого вы подстроку Если это так, я настоятельно рекомендую включить функции mb_* в вашем php.ini или сделать это ini_set(«mbstring.func_overload», 2);
$string = "'test1', 'test2', 'test3',"; echo mb_substr($string, 0, -1);
Вы можете использовать один из следующих способов, чтобы удалить последнюю запятую (,)
$string = "'name', 'name2', 'name3',"; // this is the full string or text. $string = chop($string,","); // remove the last character (,) and store the updated value in $string variable. echo $string; // to print update string.
$string = '10,20,30,'; // this is the full string or text. $string = rtrim($string,','); echo $string; // to print update string.
$string = "'name', 'name2', 'name3',"; // this is the full string or text. $string = substr($string , 0, -1); echo $string;