Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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 填写一系列以破折号或逗号分隔的数字_Php - Fatal编程技术网

Php 填写一系列以破折号或逗号分隔的数字

Php 填写一系列以破折号或逗号分隔的数字,php,Php,我需要在使用破折号或逗号的地方填充一系列数字。 我使用的代码运行良好,但当数字以零开头时,它不起作用(前导零下降) $str=str_替换('','11-17,19041244-041250); $arr=爆炸(“,”,$str); foreach($arr作为$elem){ $values=分解('-',$elem); 如果(计数($values)!=1){ 对于($i=$values[0];$i此行: for($i=$values[0];$i<=$values[1];$i++) $

我需要在使用破折号或逗号的地方填充一系列数字。 我使用的代码运行良好,但当数字以零开头时,它不起作用(前导零下降)

$str=str_替换('','11-17,19041244-041250);
$arr=爆炸(“,”,$str);
foreach($arr作为$elem){
$values=分解('-',$elem);
如果(计数($values)!=1){
对于($i=$values[0];$i此行:

for($i=$values[0];$i<=$values[1];$i++)   $newArr[]=$i;
只需确保在使用该方法之前启动
$newArr=[];


查看:

试试这个。从这里开始:


谢谢。只需在开头和结尾加上数字+1时做一些小改动。
for($i=$values[0];$i<=$values[1];$i++)   $newArr[]=$i;
for($i=(int)$values[0];$i<=(int)$values[1];$i++)   $newArr[]=$i;
$newArr = array_merge($newArr, range((int)$values[0],(int)$values[1]));
<?php
$str = str_replace(' ', '', '11-17,19,041244-041250');
$arr = explode(',', $str);

foreach ($arr as $elem) {
    $values = explode('-',$elem);

    if (count($values) != 1) {
        for($i = $values[0]; $i <= $values[1]; $i++) {
            //$newArr[]=$values[0]++;
            $newArr[] = str_pad($i + 1, strlen($values[0]), 0, STR_PAD_LEFT);
        }
    } else {
        $newArr[] = $elem;
    }

    print_r($newArr);
}
<?php
$str = str_replace(' ', '', '11-17,19,041244-041250');
$arr = explode(',', $str);

foreach ($arr as $elem) {
    $values = explode('-',$elem);
    if (count($values) != 1) {
        $newArr[] = $values[0];
        for($i = $values[0]; $i < $values[1]; $i++) {
            $newArr[] = str_pad($i + 1, strlen($values[0]), 0, STR_PAD_LEFT);
        }
    }else{
        $newArr[] = $elem;
    }    
}
    print_r($newArr);
}