2009-09-10 4 views
1

У меня есть строка, как следующее:PHP лопается, но не считают дополнительные разделители

test1, test2, test3, test4, 

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

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

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

ответ

5

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

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

+0

или даже используйте trim(), чтобы удалить один спереди, если таковой имеется. – mauris

0

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

substr($string, 0, -1);

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

-1

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

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

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

См. preg_split()'s manual entry.

+0

Люди, дающие положительные ответы? Интересно. –

Смежные вопросы