Php 对于增量为01,02,03的回路(如果为01-03)和增量为1,2,3的回路(如果为1-3)使用更好的方法

Php 对于增量为01,02,03的回路(如果为01-03)和增量为1,2,3的回路(如果为1-3)使用更好的方法,php,Php,我在Excel表格中有两列。一个是国家代码,另一个是城市代码 数据如下: Country Code City Code 10 01-03 Country Code City Code 10 1-3 我必须通过组合国家代码和城市代码将它们存储在数据库中,如下所示: Result 1001 1002 1003 也就是说,国家代码将和01-03范围内的每个城市代码连接 如果数据是这样给出的: Country Code City Code 10

我在Excel表格中有两列。一个是国家代码,另一个是城市代码

数据如下:

Country Code  City Code
10            01-03
Country Code  City Code
10            1-3
我必须通过组合国家代码和城市代码将它们存储在数据库中,如下所示:

Result
1001
1002
1003
也就是说,国家代码将和01-03范围内的每个城市代码连接

如果数据是这样给出的:

Country Code  City Code
10            01-03
Country Code  City Code
10            1-3
我的结果应该是

Result
101
102
103
我使用for循环将国家代码与给定范围的城市代码连接起来

但我得到的结果都是101102103

有人能提出更好的方法来处理这个问题吗

我的代码是

$mystring = $area_code_array;
                                                 $findme   = '-';
                                                 $pos = strpos($mystring, $findme);

                                             if($pos === false)
                                             {
                                                 $start_point = preg_replace("/[^0-9]+/", "",$area_code_array);
                                                 $end_point   = preg_replace("/[^0-9]+/", "",$area_code_array);
                                             }
                                             else
                                             {
                                                $explode = explode('-',$area_code_array);
                                                $start_point = preg_replace("/[^0-9]+/", "",$explode[0]);
                                                $end_point   = preg_replace("/[^0-9]+/", "",$explode[1]);
                                             }
                                             for($h=$start_point;$h<=$end_point;$h++)
                                             {
}

上面是我使用的代码$area\u code\u数组用于获取城市代码,它可能类似于1,2,3或1-20,01-20。

试试这个:

$country  = 10;
$city     = '01-05';

$ct       = explode("-",$city);
$length   = strlen($ct[0]);
$range    = range($ct[0],$ct[1]);

$res      = array();
foreach($range as $val){
   $res[] = $country.str_pad($val, $length, "0", STR_PAD_LEFT);
}

echo "<pre>";
print_r($res);
试试这个:

$country  = 10;
$city     = '01-05';

$ct       = explode("-",$city);
$length   = strlen($ct[0]);
$range    = range($ct[0],$ct[1]);

$res      = array();
foreach($range as $val){
   $res[] = $country.str_pad($val, $length, "0", STR_PAD_LEFT);
}

echo "<pre>";
print_r($res);
您可以尝试以下方法:

因此$newNumber的值是:01

您可以尝试以下方法:

所以$newNumber的值是:01