如果你想要只有2位数的数字(01,02 ... 10,11),如何使用range()?

时间:2013-03-12 13:03:45

标签: php arrays range

我有一系列数字

$arr = range(01,10);

但我希望输出为

Array ( [0] => 01 [1] => 02 [2] => 03 ... [9] => 10)

我怎么能这样做?

4 个答案:

答案 0 :(得分:11)

您可能需要array_map()

array_map(function($item) {
    return str_pad($item, 2, '0', STR_PAD_LEFT); 
}, $arr);

Demo

或者,您也可以使用sprintf()

return sprintf('%02d', $item);

如果阵列很大,您可能希望就地进行更换;感谢Waygood提出的建议:

array_walk($arr, function(&$item) {
    $item = str_pad($item, 2, '0', STR_PAD_LEFT); 
});

答案 1 :(得分:1)

$arr = range(1,10);
$arr = array_map('pad', $arr);

function pad($input)
{
    return str_pad($input, 2, "0", STR_PAD_LEFT);
}

print_r($arr);

See it in action

答案 2 :(得分:0)

查看str_pad选项。您可以使用它将前导零添加到输出中。

foreach($arr as $key=>$val) {
  $arr[$key] = str_pad($val, 2, '0', STR_PAD_LEFT);
}

var_dump($arr);

答案 3 :(得分:0)

使用带引用的foreach循环:

$arr = range(1,10);
foreach($arr as &$val) {
    $val = str_pad($val, 2, '0', STR_PAD_LEFT);
}

var_dump($arr);