Извините за это, но я не смог найти решение, которое получит это – от 7 000 до 7000.
Я использую intval () и number_format (), но он просто даст мне 7 не 7000.
$myVal = '7,000'; echo intval($myVal);
это возвращает 7
то же самое происходит с number_format ()
Что я делаю не так?
intval()
не будет работать с вашей строкой из-за запятой. Вы можете удалить запятую, используя str_replace()
а затем вызывая intval()
следующим образом:
echo intval(str_replace(',', '', $myVal))
Если вы используете PHP> = 5.3 (или имеете расширение «intl», установленное, по крайней мере, с версией 1.0), вы также можете использовать класс NumberFormatter
для синтаксического анализа 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. решение.