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

问题描述 投票:3回答:4

我有一系列这样的数字

$arr = range(01,10);

但我希望输出

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

我怎么能这样做?

php arrays range
4个回答
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
投票
$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


0
投票

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

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

var_dump($arr);

0
投票

使用带引用的foreach循环:

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

var_dump($arr);
© www.soinside.com 2019 - 2024. All rights reserved.