2009-10-08 7 views
2

У меня есть большой массив, содержащий множество элементов, содержащих числовые данные.Добавить десятичную точку 2 символа справа под PHP

Пример:

3200 
34300 
1499 
12899 

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

32.00 
343.00 
14.99 
128.99 

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

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

ответ

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

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

+0

Работы, спасибо. – 2009-10-08 16:48:46

+0

Полезно для API рекламных продуктов Amazon, который возвращает объект, в котором цена отформатирована без какой-либо десятичной точки. – roastedtoast

0

Использование 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); 
} 
2

Или, если вы хотите анонимные функции и 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().

 Смежные вопросы

  • Нет связанных вопросов^_^