我有一系列数字
$arr = range(01,10);
但我希望输出为
Array ( [0] => 01 [1] => 02 [2] => 03 ... [9] => 10)
我怎么能这样做?
答案 0 :(得分: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);
});
答案 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);
答案 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);