преобразование php отформатированный int в int

Извините за вопрос, но я не могу найти решение, которое получит это - & gt; От 7000 до 7000.

Я использую intval () и number_format (), но это даст мне 7, а не 7000.

$myVal = '7,000';
echo intval($myVal);

это возвращает 7

то же самое относится к number_format ()

Что я делаю неправильно?

 gcochard14 июн. 2012 г., 06:25
Ваша установка php локализована в стране, где, такое десятичный разделитель?
 Praveen Kumar Purushothaman14 июн. 2012 г., 06:27
Проверьте свою локализацию для того, что @Greg сказал, кстати, вы используете Windows?

Ответы на вопрос(2)

= 5.3 (или у вас установлено расширение "intl", по крайней мере с версией 1.0), вы также можете использоватьNumberFormatter класс для разбора номера для конкретной локали.

$myVal = '7,000';
$nf = new NumberFormatter("en_EN", NumberFormatter::DECIMAL);

var_dump($nf->parse($myVal, NumberFormatter::TYPE_INT32));

# output: int(7000)

Если вы используете версию PHP менее 5.3, вам лучше использовать @KevinS. решение.

 11 июн. 2014 г., 22:43
Это такой лучший ответ, спасибо!
Решение Вопроса

intval() не будет работать с той строкой, которая у вас есть из-за запятой. Вы можете удалить запятую с помощьюstr_replace() а потом звонитintval() вот так:

echo intval(str_replace(',', '', $myVal))

Ваш ответ на вопрос