Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果只需要两位数字(01,02…10,11),如何使用range()?_Php_Arrays_Range - Fatal编程技术网

Php 如果只需要两位数字(01,02…10,11),如何使用range()?

Php 如果只需要两位数字(01,02…10,11),如何使用range()?,php,arrays,range,Php,Arrays,Range,我有一系列这样的数字 $arr = range(01,10); 但我希望输出是 Array ( [0] => 01 [1] => 02 [2] => 03 ... [9] => 10) 我该怎么做呢?您可能需要array\u map(): 或者,您也可以使用sprintf(): return sprintf('%02d', $item); 如果阵列较大,您可能希望就地进行更换;谢谢你的建议: array_walk($arr, function(&$item

我有一系列这样的数字

$arr = range(01,10);
但我希望输出是

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

我该怎么做呢?

您可能需要
array\u map()

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

return sprintf('%02d', $item);
如果阵列较大,您可能希望就地进行更换;谢谢你的建议:

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

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

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);

str_pad($x,2,'0',str_pad_左);不要试图以这种方式将它们存储在数组中(原因之一是八进制数问题)。将它们作为正则整数存储在数组中,并格式化以供输出。正如其他人所说,整数没有填充的概念。填充用于字符串。数字没有任何数字的概念。这是数字的字符串表示形式的属性。将所有内容转换为字符串并检查长度。这是一种懒惰的方式,很好。恰当、简洁的解决方案+1迪托·科林打算建议array_walk:-)+1是
array_map
真的比
foreach($arr as&$item)
更可取吗?@Eric他们不一样。一个就地修改数组,另一个返回原始数组的修改副本
array\u walk
将相当于一个
foreach
byreference@Eric视情况而定;如果数组足够大,最好使用引用执行
array\u walk()
foreach
。只是不想使用
array\u walk
?它是faster@ColinMorelli:真的吗?这似乎不太可能是的,事实上,现在我考虑到为
array\u walk
foreach($arr as $key=>$val) {
  $arr[$key] = str_pad($val, 2, '0', STR_PAD_LEFT);
}

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

var_dump($arr);