3

我有一个这样的数字数组

$arr = range(01,10);

但我希望输出是

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

我怎么能这样做?

4

4 回答 4

11

您可能需要array_map()

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

演示

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

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

如果数组很大,您可能希望就地执行替换;感谢Waygood的建议:

array_walk($arr, function(&$item) {
    $item = str_pad($item, 2, '0', STR_PAD_LEFT); 
});
于 2013-03-12T13:05:34.957 回答
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);

看到它在行动

于 2013-03-12T13:06:13.400 回答
0

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

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

var_dump($arr);
于 2013-03-12T13:06:35.663 回答
0

使用带有引用的 foreach 循环:

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

var_dump($arr);
于 2013-03-12T13:08:32.767 回答