PHP-строка для int - PullRequest
       11

PHP-строка для int

25 голосов
/ 10 августа 2011
$a = '88';
$b = '88 8888';

echo (int)$a;
echo (int)$b;

, как и ожидалось, оба производят 88. Кто-нибудь знает, есть ли строка для функции int, которая будет работать для значения $ b и производить 888888?Я немного погуглил без удачи.

Спасибо

Ответы [ 6 ]

40 голосов
/ 10 августа 2011

Вы можете удалить пробелы перед приведением к int:

(int)str_replace(' ', '', $b);

Кроме того, если вы хотите удалить другие часто используемые разделители цифр (например, ,), вы можете присвоить функциимассив (но будьте осторожны - в некоторых странах, например, у меня, для обозначения дроби используется запятая):

(int)str_replace(array(' ', ','), '', $b);
12 голосов
/ 10 августа 2011

Если вы хотите оставить только цифры - используйте preg_replace, например: (int) preg_replace ("/ [^ \ d] + /", "", $ b).

1 голос
/ 10 августа 2011

Заменить пробельные символы, а затем преобразовать их (используя функцию intval или обычное преобразование типов)

intval(str_replace(" ", "", $b))
1 голос
/ 10 августа 2011

Что вы хотите, чтобы был результат?888888?Если это так, просто удалите пробелы с помощью str_replace, а затем конвертируйте.

0 голосов
/ 25 января 2019

Вы можете использовать str_replace, когда объявляете свою переменную $ b следующим образом:

$b = str_replace(" ", "", '88 8888');
echo (int)$b;

Или самое красивое решение - использовать intval:

$b = intval(str_replace(" ", "", '88 8888');
echo $b;

Если вашзначение '88 888' относится к другой переменной, просто замените '88 888' на переменную, содержащую вашу строку.

0 голосов
/ 10 августа 2011

Используйте str_replace, чтобы сначала удалить пробелы?

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