2016-03-22 5 views

答えて

1

正確にここで探しているものを明確にしてください。

これらの2つのアプローチはまったく異なり、配列の値が別の場合は異なる結果が得られます。

echo $ar[$i+1]; // Means you're printing the values corresponding to array keys 1, 2, 3..... 

echo $ar[$i] +=1 // Means you're getting the values of keys 0, 1, 2... and adding 1 to each of the values. 

あなたは配列$ ARを持っている場合=配列(3、6、2、10)、これら二つはこのように動作します:

echo $ar[$i+1]; // 6, 2, 10 .... 

echo $ar[$i] +=1 // 4, 7, 3, 11.... 

は、この情報がお役に立てば幸いです。

平和! xD

0

もちろんです。

通知は、あなたのコードは";"

way1way2後は、配列内の(i+1)番目の項目をエコーする必要があります。

way2

あなたは、配列を変更した場合、結果は異なる場合がありますので、 i-th item'value + 1

をエコー。

その後、

$ar = array('1','3','4'); 

、1が出力さ

方法:

3,4とはキャッチOutOfRange Exception

ウェイ2が出力されます(それが存在していない$ar[3]、尋ねたので。):

2,4,5 
2

ここでは、代入演算子とインクリメント演算子を使用することです。最初の方法で

$のAR [$ I + 1] $i + 1のインデックスで配列要素を印刷する

、それがループの最初の反復で1を意味します。

echo $ar[$i + 1]; 
    $ar[0 + 1]; 
    $ar[1]; 

だから、インデックス1の値を探しますと、それは1

お知らせです:

:ループが最後の反復に達したときに、ループしながら、あなたの文は次のようになります
echo $ar[$i + 1]; 
    $ar[5 + 1]; 
    $ar[6]; 

インデックス6には配列の値が割り当てられていないため、未定義インデックスの通知が表示されます。第二の方法で

ここインクリメント演算子が使用されます。したがって、ステートメントは次のようになります。

echo $ar[$i] = $ar[$i] + 1; 

したがって、最初に1が$ ar [$]に追加されて割り当てられます。そして、更新された値をエコーし​​ます。ループの最初の繰り返しでは、次のようになります。

echo $ar[$i] = $ar[$i] + 1; 
    $ar[$i] = 0  + 1; 

finally Ans will be 1; 
関連する問題