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 に答える