PHP взорваться, но не учитывать дополнительный разделитель - PullRequest
1 голос
/ 10 сентября 2009

У меня есть строка вроде:

test1, test2, test3, test4, 

Когда я использую функцию implode для этого, я получаю, что в массиве есть 5 элементов.

Как я могу не учитывать последнюю лишнюю запятую?

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

Ответы [ 3 ]

5 голосов
/ 10 сентября 2009

Вы можете удалить запятые (или любой символ), используя rtrim ();
Попробуйте это:
$ str = rtrim ('test1, test2, test3, test4,', ',');

Смотрите документацию для rtrim () @ http://us2.php.net/manual/en/function.rtrim.php

0 голосов
/ 10 сентября 2009

Я бы, наверное, использовал

preg_split('#, *#', $str, null, PREG_SPLIT_NO_EMPTY)

, который был бы еще более гибким с вводом (обрабатывает последовательные запятые, недостаток пробела или удвоенного пробела и т. Д.). Конечно, это зависит от того, насколько вы уверены, что ввод останется неизменным.

См. Ручной ввод preg_split () .

0 голосов
/ 10 сентября 2009

Может быть, rtrim () лучше, как предложено Arms . Но, как вы просили подстроку, просто чтобы она была зарегистрирована ...

substr($string, 0, -1);

Когда параметр secound имеет отрицательное значение, он будет действовать как strlen($string)-N и получит строку, в которой пропущены последние N символов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...