Показать строку из базы данных с удалением запятой [duplicate]

См. мой ответ здесь, как это сделать с помощью одной инструкции x86, за исключением того, что для поиска наименее значимого бита набора вам понадобится команда BSF («бит сканирования вперед») вместо BSR, описанная там ,

94
задан zeckdude 29 October 2009 в 11:14
поделиться

10 ответов

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

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

241
ответ дан ManseUK 16 August 2018 в 04:33
поделиться
  • 1
    Это приведет к удалению нескольких запятых: "a, b ,,," станет «a, b». Независимо от того, чего хочет OP или нет, я не знаю ... – Greg 29 October 2009 в 11:20
  • 2
    отлично спасибо! – zeckdude 29 October 2009 в 11:25
  • 3
    Спасибо, я делал это с помощью substr, strlen, ... всю свою жизнь – Farhad 15 April 2015 в 17:59
0
ответ дан AlexWilson 16 August 2018 в 04:33
поделиться

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

  rtrim ($ string, ",");   

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

2
ответ дан Anand Shah 16 August 2018 в 04:33
поделиться

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

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

Если вы хотите удалить все запятые из конца строки, используйте более простой:

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

Функция rtrim (и соответствующая ltrim для левой обрезки) очень полезна, так как вы можете указать диапазон символов для удаления, то есть удалить запятые и конечные пробелы, которые вы бы пишете:

  $ string = rtrim ($ string, ", \ t \n");   
34
ответ дан Ben Russell 16 August 2018 в 04:33
поделиться
  • 1
    Спасибо за подробное объяснение. Это проясняет ситуацию! – zeckdude 29 October 2009 в 20:33

Если вы конкатенируете что-то в цикле, вы также можете сделать это следующим образом:

  $ coma = "";  foreach ($ a as $ b) {$ string. = $ coma. $ b;  $ coma = ",";  }  
3
ответ дан cesar.mi 16 August 2018 в 04:33
поделиться

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

  if (substr ($ string, -1) == ",")  
0
ответ дан Kaivosukeltaja 16 August 2018 в 04:33
поделиться

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

1
ответ дан mepo 16 August 2018 в 04:33
поделиться
  if (substr ($ str, -1, 1) == ',') {$ str = substr ($ str, 0, -1);  }  

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

1
ответ дан TigerTiger 16 August 2018 в 04:33
поделиться

Я предполагаю, что вы конкатенируете что-то в цикле, например

  foreach ($ a as $ b) $ string. = $ b.  '';   

гораздо лучше собирать элементы в массиве, а затем присоединяться к нему с помощью разделителя, который вам нужен

  foreach ($ a as $ b) $ result [  ] = $ b;  $ result = implode (',', $ result);   

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

9
ответ дан user187291 16 August 2018 в 04:33
поделиться
  • 1
    Хорошее предложение. Однако не все конкатенации могут иметь место в PHP. В моем случае я отправляю конкатенированную строку Javascript для PHP, чтобы разгадать. – Sablefoste 11 September 2015 в 19:49

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

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

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

  $ update_sql = rtrim ($ update_sql, ',');   
0
ответ дан zzapper 16 August 2018 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: