Как избавиться от лишних элементов в строковом литерале в php? - PullRequest
2 голосов
/ 05 февраля 2010

У меня есть номер, такой как 9843324+, и теперь я хочу избавиться от + в конце и иметь только 9843324, и как мне это сделать в php?

Сейчас я делаю $customer_id = explode('+',$o_household->getInternalId); также $o_household->getInternalId возвращает мне 9843324+, но я хочу 9843324, как мне этого добиться?

Спасибо.

Ответы [ 6 ]

5 голосов
/ 05 февраля 2010

, если вы просто хотите вставить + в конец, используйте substr.

$customer_id = substr($o_household->getInternalId, 0, -1);

или rtrim

$customer_id = rtrim($o_household->getInternalId, "+");
2 голосов
/ 05 февраля 2010

Вы можете использовать регулярное выражение для удаления всего, что не является числом

$newstr = preg_replace("/[^0-9]+/","",$str);

1 голос
/ 06 февраля 2010
$customer_id = rtrim ( $o_household->getInternalId, '+' );

ссылка на функцию rtrim

rtrim удаляет символы во втором аргументе (+ только в этом случае) с конца строки.

Если в конце строки нет +, это не испортит ваше значение, как substr.

Это решение, очевидно, более читабельно и быстрее, чем, скажем, preg_replace.

0 голосов
/ 06 февраля 2010

Вы можете использовать intval для получения целочисленного значения переменной, если это возможно:

echo intval($str);

Помните, что intval вернет 0 при ошибке.

0 голосов
/ 05 февраля 2010

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

0 голосов
/ 05 февраля 2010

вы можете использовать intval ($ o_household-> getInternalId)

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