2016-03-22 10 views
0
<?php 
//I have an array like this 
$ar = array('0', '1', '2', '3', '4', '5'); 

for($i = 0; $i < count($ar); $i++) 
{ 
echo $ar[$i+1]; //way1 
echo $ar[$i] +=1 //way2 
} 

?> 

Also ist es anders zwischen Way1 und Way 2, weil ich das gleiche Ergebnis sah ???Was unterscheidet die beiden Wege im Array?

Antwort

1

Bitte klären Sie, was genau Sie hier suchen.

Diese beiden sind völlig unterschiedliche Ansätze und geben Ihnen andere Ergebnisse, wenn Ihre Array-Werte etwas anderes sind.

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. 

Wenn Sie eine Array $ ar = Array (3, 6, 2, 10), werden diese zwei so funktionieren:

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

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

Hoffnung, das hilft.

Frieden! xD

0

natürlich nicht.

Hinweis, Ihr Code benötigen ";" nach way2

way1 die (i+1) -te Element im Array Echo.

way2 Echo der i-th item'value + 1

so, wenn Sie das Array zu ändern, kann das Ergebnis unterschiedlich sein.

z.B.

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

dann,

Weg 1 AUSGABE:

3,4 und fangen OutOfRange Exception (weil er fragte die $ar[3], das ist nicht vorhanden.)

WAY2 folgende Ausgabe:

2,4,5 
2

Hier der Unterschied Verwenden Sie den Zuweisungsoperator und den Inkrementoperator.

In einer ersten Art und Weise:

$ ar [i $ + 1] wird in dem Index der Arrayelement $i + 1 drucken, bedeutet dies, 1 in der ersten Iteration der Schleife.

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

So wird es aussehen für den Wert des Index 1 und das ist 1.

Hinweis: Während Looping, wenn Schleife Reichweite zum letzten Iteration dann Ihre Aussage wie folgt aussehen:

echo $ar[$i + 1]; 
    $ar[5 + 1]; 
    $ar[6]; 

Es wird eine Notiz für undefinierten Index angezeigt, da Index 6 keinen Wert in Ihrem Array zugewiesen ist.

In einem zweiten Weg:

Hier Inkrementoperator verwendet wird. So wird die Aussage so geworden:

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

So zuerst, 1 bis $ ar [$] hinzugefügt werden und dann zuweisen. Und dann wird der aktualisierte Wert angezeigt. In der ersten Iteration der Schleife wird es sein:

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

finally Ans will be 1; 
Verwandte Themen