从开始和结束字符串生成数组

时间:2012-09-19 10:17:39

标签: php arrays

我很抱歉提出简单的问题。

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之间

由于

2 个答案:

答案 0 :(得分:2)

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

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

现在运行for循环以递增start数组的最后一个值并将其推送到结果数组,如

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

考虑错误验证。

答案 1 :(得分: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;
    }