Добавить десятичную точку 2 символа справа под PHP

У меня есть большой массив, содержащий множество элементов, содержащих числовые данные.

Пример:

3200
34300
1499
12899

Я хочу преобразовать их в:

32.00
343.00
14.99
128.99

Как я могу добиться этого элегантно в PHP, не используя регулярное выражение?

Заранее спасибо.


person Community    schedule 08.10.2009    source источник


Ответы (3)


$new_array=array();
foreach($old_array as $value)
{
   $new_array[]=number_format(($value/100),2);
}

См. number_format, если вы хотите поиграть с разделителем тысяч или чем-то еще. . См. foreach, если вы хотите изменить значения массива на месте.

person ansate    schedule 08.10.2009
comment
Полезно для API рекламных продуктов Amazon, который возвращает объект, в котором цена отформатирована без десятичной точки. - person egdavid; 28.01.2017

Или, если вам нравятся анонимные функции и PHP 5.3:

$nums = array(1, 2, 3, 4);
array_walk($nums, function (&$val, $key) {
    $val = number_format($val/100, 2);
});
print_r($nums);

Выход:

Array
(
    [0] => 1.00
    [1] => 2.00
    [2] => 3.00
    [3] => 4.00
)

Тем не менее, ответ тот же: используйте number_format().

person hlpiii    schedule 08.10.2009

Использование number_format.

for($i=0;$i<count($array);$i++)
{
    $array[$i] = number_format($array[$i]/100,2);
    //if you need them as numbers
    $array[$i] = (float) number_format($array[$i]/100,2);
}
person Alan Storm    schedule 08.10.2009