如何使用str_pad()生成带前导零的数字数组?
用str_pad()生成带前导零的数字数组
要生成类似000, 001, 002...这类带前导零的数组,核心思路是先创建数字范围的数组,再批量用str_pad补全格式,以下是具体实现:
1. 生成000到090的数组
先通过range()生成0到90的数字序列,再用array_map()结合str_pad()给每个数字补前导零,确保是3位格式:
// 定义起始和结束数字 $start = 0; $end = 90; // 生成原始数字范围数组 $numberArray = range($start, $end); // 批量补前导零 $paddedArray = array_map(function($num) { // str_pad参数:目标数字、总长度、补位字符、补位方向 return str_pad($num, 3, '0', STR_PAD_LEFT); }, $numberArray); // 输出结果示例:Array ( [0] => 000 [1] => 001 ... [90] => 090 ) print_r($paddedArray);
2. 生成100到200的数组
逻辑完全一致,因为100本身已是3位数字,str_pad()不会对它做额外修改,最终得到的就是100到200的字符串数组:
$start = 100; $end = 200; $numberArray = range($start, $end); $paddedArray = array_map(function($num) { return str_pad($num, 3, '0', STR_PAD_LEFT); }, $numberArray); // 输出结果示例:Array ( [0] => 100 [1] => 101 ... [100] => 200 ) print_r($paddedArray);
关于起始值为000的说明
直接将range()的起始值设为0即可,str_pad(0, 3, '0', STR_PAD_LEFT)会自动输出000,完全符合你的要求。
如果想用循环实现(适合需要自定义步长的场景),也可以这么写:
$paddedArray = []; for ($i = 0; $i <= 90; $i++) { $paddedArray[] = str_pad($i, 3, '0', STR_PAD_LEFT); }
内容的提问来源于stack exchange,提问作者bre
相关产品推荐
相关产品推荐

