Як видалити останню кому з рядка за допомогою PHP?


96

Я використовую цикл для отримання значень зі своєї бази даних, і мій результат такий:

'name', 'name2', 'name3',

І я хочу так:

'name', 'name2', 'name3'

Я хочу видалити кому після останнього значення циклу.


11
Ви повинні використовувати implodeсвої початкові значення з комами, а не перебирати їх і видаляти речі в кінці.
moonwave99

Відповіді:


217

Використовуйте rtrimфункцію:

rtrim($my_string, ',');

Другий параметр вказує на символ, який потрібно видалити.


26
Також переконайтеся, що у вас немає місця після коми, інакше це не вдасться, або зробіть rtrim (обрізка ($ my_string), ',').
Фоксхаундн

Відмінна відповідь!
DiChrist

@Foxhoundn Ваш коментар - рятівник. Дякую
брато

1
Це не працює в циклі, який додає кому в кінці, оскільки прибере всі коми.
LizardKG

25

Спробуйте:

$string = "'name', 'name2', 'name3',";
$string = rtrim($string,',');

1
Я вже спробував це, але його показ виглядає так: 'name''name2''name3' Це не те, що мені потрібно
JoJo

На вашому прикладі вам потрібно застосовувати цю функцію лише до кінцевого результату, а не до кожного значення окремо.
Боаз

Я використовую цикл, так як я можу знати кінцевий результат циклу?
JoJo

Кінцевий результат циклу зберігається у змінній, правда? Тож застосуйте rtrimвиклик до цієї змінної. Якщо у вас все ще виникають труднощі, оновіть своє запитання кодом, який створює цикл.
Боаз

Ця відповідь мені особливо подобається, оскільки одна з проблем із великою кількістю вбудованих функцій PHP полягає в тому, що деякі з них є недійсними, а деякі з них мають типи повернення. У цьому випадку я намагався просто писати rtrim($string, ','), коли мені слід писати$string = rtrim($string, ',');
Алек

14

Спробуйте наведений нижче код:

$my_string = "'name', 'name2', 'name3',";
echo substr(trim($my_string), 0, -1);

Використовуйте цей код, щоб видалити останній символ рядка.


10

Ви можете скористатися substrфункцією, щоб видалити це.

$t_string = "'test1', 'test2', 'test3',";
echo substr($t_string, 0, -1);



4

Це вплине на ваш сценарій, якщо ви працюєте з багатобайтовим текстом, з якого ви створюєте підрядок. Якщо це так, я настійно рекомендую увімкнути функції mb_ * у вашому php.ini або зробити цеini_set("mbstring.func_overload", 2);

$string = "'test1', 'test2', 'test3',";
echo mb_substr($string, 0, -1);



2

Для цієї мети краще використовувати імплод. Імплоде легко і приголомшливо:

    $array = ['name1', 'name2', 'name3'];
    $str = implode(', ', $array);

Вихід:

    name1, name2, name3

Створювати масив спочатку зі значень, прочитаних з бази даних, не потрібно. rtrim & substr є як дійсними, так і хорошими рішеннями.
Стів Горват,

Ну, ви маєте рацію, але якщо у вас є масив, це зручне рішення
khandaniel

1

Для видалення останньої коми (,) можна скористатися однією з наведених нижче методик

Рішення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.

Рішення 2:

$string = '10,20,30,';              // this is the full string or text.
$string = rtrim($string,',');
echo $string;                       // to print update string.

Рішення 3:

 $string = "'name', 'name2', 'name3',";  // this is the full string or text.
 $string = substr($string , 0, -1);
 echo $string;  
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.