2016-03-22 19 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 
} 

?> 

Bu yüzden yol1 ve yol 2 arasında farklıdır çünkü aynı sonucu gördüm ???Dizide iki yol arasındaki fark nedir?

cevap

1

Lütfen tam burada ne aradığınızı netleştirin.

Bu ikisi tamamen farklı yaklaşımlardır ve dizi değerleriniz başka bir şey olduğunda size farklı sonuçlar verir. Bu yardımcı olur

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

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

Hope: Bir dizi $ ar = diziniz varsa

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. 

(3, 6, 2, 10), bu iki bu şekilde çalışacaktır.

Peace! Tabii ki, XD

0

.

Bildirim, kodunuz ";"

way1way2 sonra dizideki (i+1)-inci madde yankı gerekir.

way2

Eğer dizi değiştirirseniz, sonuç farklı olabilir, bu nedenle i-th item'value + 1

yankı.

örn. Sonra

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

, 1 irade çıkışı

yol:

3,4 ve yakalamak bir OutOfRange Exception

way2 çıktısı (var olmayan bir $ar[3], istediği için gönderildi.):

2,4,5 
2

İşte fark Atama operatörü ve Arttırma Operatörünü kullanmaktır. Bir birinci şekilde,

: $i + 1 indeksinde dizi elemanı yazdırır

$ ar [$ i + 1], O döngünün birinci tekrarda 1 anlamına gelir.

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

Yani O indeksi 1 değerine arayacaktır ve olmasıdır 1.

Uyarı:

: döngü sırasında, ne zaman son yineleme için döngü ulaşmak ardından ifadesi aşağıdaki gibi görünecektir
echo $ar[$i + 1]; 
    $ar[5 + 1]; 
    $ar[6]; 

Dizine 6, dizininizde herhangi bir değer atanmamış olduğundan, tanımlanmamış dizine bir uyarı gösterecektir.İkinci bir şekilde ise

:

Burada artış operatör kullanılır. Yani deyim böyle olacak:

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

Yani ilk, 1 $ ar [$] ve buna atamak eklenecektir. Ve sonra bu güncellenmiş değeri yankılayacaktır. Döngünün ilk iterasyonunda:

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

finally Ans will be 1; 
İlgili konular