-1

これは私の例の配列です:

$arrayy[0]=48.72;
$arrayy[1]=21.32;
$arrayy[2]=48.62;
$arrayy[3]=21.31;
$arrayy[4]=48.62;
$arrayy[5]=21.31;

この機能

function writeDouble($array){
        for($curr = 0; $curr<count($array)-1; $curr++){
            echo $array[$curr]." - ";
            echo $array[$curr+1]."<br>";
            $curr++;
    }
}

カップル (0-1 、 2-3 、 4-5) を書き込む必要があります-次のような出力:

48.72 - 21.32
48.62 - 21.31
48.62 - 21.31

何が間違っているのですか、なぜエラーが発生するのですか?

Notice: Undefined offset: 6 in C:\xampp\htdocs\xampp\lg\functions.php on line 466

または、カップルを作成するためのより良い関数を定義できますか? もう考えられない...ありがとう

4

3 に答える 3

4

行の最後の繰り返しでは、もちろん定義されていないecho $array[$curr+1]."<br>";ものを探しているから$array[count($array)]です!!

于 2012-09-16T17:15:38.243 に答える
0

$currを2回インクリメントしていることに注意してください。

for($curr = 0; $curr<count($array)-1; $curr++){

$curr++

これがループの範囲外になる理由です

于 2012-09-16T17:24:44.257 に答える
0
  1. を使用していますが、 からまで$array[$curr + 1]繰り返しています。配列に奇数の値がある場合に必要です。0$curr - 1isset

  2. 2回インクリメントしています(forで1回、 のスコープで1回for)。

コード ソリューション:

$arrayy[0]=48.72;
$arrayy[1]=21.32;
$arrayy[2]=48.62;
$arrayy[3]=21.31;
$arrayy[4]=48.62;
$arrayy[5]=21.31;    

function writeDouble($array) {
        for ($curr = 0; $curr < (count($array) - 1); $curr += 2) {
            echo $array[$curr] . " - ";
            if (isset($array[$curr + 1])) {
              echo $array[$curr + 1];
            }
            echo "<br>";
    }
}

writeDouble($arrayy);

出力:

48.72 - 21.32
48.62 - 21.31
48.62 - 21.31

もう警告はありません。

于 2012-09-16T17:24:06.873 に答える