0

我很抱歉问一个简单的问题。

function generateArray( $start, $end)
{

 //do task
 return $arr
} 

example 

$start= '47_000008';
$end= '47_000011'

$arr= generateArray( $start, $end);

这里数组的元素应该是

arr[0]=47_000008'
arr[1]=47_000009'
arr[2]=47_000010'
arr[3]=47_000011'

我需要帮助来编写函数

在这里,开始和结束值可以在 47_000001 到 47_999999 之间

谢谢

4

2 回答 2

2

假设你的字符串格式是 XX_XXXXX。首先将字符串拆分为数组,例如

$startList = explode("_",$start);
$endList = explode("_",$end);

现在运行一个 for 循环来增加起始数组的最后一个值并将其推送到结果数组,例如

$totalindex = $endList[1]-$startList[1];
$startvalue=$startList[1];
for($i=0;$i<$totalindex;$i++){
   $startvalue=$startvalue+$i;
   $newArray[$i]=$startList[0]."_".$startvalue;
}

考虑错误验证。

于 2012-09-19T10:27:36.863 回答
1

这是我的前导 null 版本

    function generateArray( $start, $end)
    {
        $startArray=explode("_",$start);
        $endArray=explode("_",$end);
        $arr=array();
        if(count($startArray)==2)
        {
            $laenge=strlen($startArray[1]);
            $startInt=(int)$startArray[1];
            $endInt=(int)$endArray[1];
            for($i=$startInt;$i<=$endInt;$i++)
            {
                $arrString=""+$i;
                while(strlen($arrString)!=$laenge)
                    $arrString="0".$arrString;
                $arr[]=$startArray[0]."_".$arrString;
            }
        }
        return $arr;
    }
于 2012-09-19T10:46:27.860 回答