2012-06-14 1 views
6

Извините за вопрос, но это, я наклоняю нашел решение, которое получит это -> 7000 до 7000.PHP конвертация отформатирован Int в Int

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

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

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

То же самое с number_format()

что я делаю не так?

+0

Является ли ваша установка php локализованной в стране, где ',' является десятичным разделителем? – gcochard

+0

Проверьте свою локализацию за то, что сказал @Greg, кстати, вы используете Windows? –

ответ

6

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

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

10

Если вы используете PHP> = 5.3 (или установлено расширение «аэроропорт», по крайней мере версии 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. решение.

+0

Это такой лучший ответ, спасибо! – thefreeman