Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по регулярке php

Павел Иванов Ученик (86), на голосовании 3 года назад
Как из строки с содержанием:
Номер: 2658
Уйдет 3349,75р.
Цифры 322
получить все числа, но чтобы числа с запятой было цельное либо через точку?
Пока получаю только все цифры, а число с запятой он делит отдельно, подскажите!
Мой код:
preg_match_all('/([0-9]+)/', $joker, $matches);
Итог:
Array ( [0] => 2658 [1] => 3349 [2] => 75 [3] => 322)
Голосование за лучший ответ
Неизвестно Мыслитель (6346) 3 года назад
округли - этот код другое, но может поможет

function fn_format_price($price = 0, $currency = CART_PRIMARY_CURRENCY, $decimals = null, $return_as_float = true)
{
if ($decimals === null) {
$currency_settings = Registry::get('currencies.' . $currency);
$decimals = !empty($currency_settings)? $currency_settings['decimals'] + 0 : 2; //set default value if not exist
}
$price = sprintf('%.' . $decimals . 'f', round((double) $price + 0.00000000001, $decimals));

if ($_SESSION['settings']['secondary_currencyC']['value'] == 'RUB') {
$price = $price / 1;
$price = ceil($price);
$price = $price *1;
}

return $return_as_float ? (float) $price : $price;
}
Сергей Просветленный (42667) 3 года назад
Я ничего не понял в вопросе. Вам нужно получить только целую часть числа? Так вы ж её получили. Или вам нужно получить числа целиком, с точками и запятыми? Тогда используйте (\d+,?\.?\d+)
Похожие вопросы