我有一个这样的数字数组
$arr = range(01,10);
但我希望输出是
Array ( [0] => 01 [1] => 02 [2] => 03 ... [9] => 10)
我怎么能这样做?
您可能需要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);
});
$arr = range(1,10);
$arr = array_map('pad', $arr);
function pad($input)
{
return str_pad($input, 2, "0", STR_PAD_LEFT);
}
print_r($arr);
查看str_pad选项。您可以使用它在输出中添加前导零。
foreach($arr as $key=>$val) {
$arr[$key] = str_pad($val, 2, '0', STR_PAD_LEFT);
}
var_dump($arr);
使用带有引用的 foreach 循环:
$arr = range(1,10);
foreach($arr as &$val) {
$val = str_pad($val, 2, '0', STR_PAD_LEFT);
}
var_dump($arr);