2016-03-23 22 views
1

Bu konuyla ilgili sorduğum sorular çoğunlukla performans/hız karşılaştırmaları etrafında dönüyordu. JavaScript for döngülerine ve diziler kullanılırken bunlara nasıl yaklaşılacağına çok aşina olduğumu biliyorum (ve bu konunun javascript ile ilgili olmadığını biliyorum, ancak bunu sadece döngüler/diziler hakkındaki anlayışımı göstermek için yazıyorum):vs foreach in php (durumsal kullanım)

var arr = [1,3,5]; 
for (var i=0; i<2; i++) { 
    console.log(arr[i]); 
} 

PHP diziler için ben foreach döngüler kullanarak bunları gezinmek gerektiğini bana anlatıyor. Ancak aşağıdaki aşağıdaki döngü stillerinin her ikisi de aynı sonucu verir.

<?php 
    $arr = array(1,3,5); 

    foreach($arr as $numbers) { 
     echo "Number is: {$numbers}<br>"; 
    } 

    for ($i=0; $i<=2; $i++) { 
     echo "Number is: " . $arr[$i] . "<br>"; 
    } 
?> 

Standart bir yanıtın özetinin "Bundan daha fazlası var." Birisi foreach kullanarak for üzerinde diziler için genel yararını hızlı bir şekilde açıklayabilir ve diziler dışında başka uygulamalar varsa? Dizi anahtarları bir dize ya da tuşları için "id" çeşit (DB sonuçlarının dizileri yineleme zaman bu normaldir), daha sonra bu kodu etmiyor kullanarak ilişkisel ise

$arrayItems = (count($array) - 1); 
for ($i = 0, $i <= $arrayItems; $i++) { 
    echo $array[$i]; 
} 

:

+5

php dizileri aslında hashmaps, bu yüzden dizinler sırasız olabilir –

+1

Dizi dizileriniz 0'dan başlamazsa Ne ilişkisel bir diziniz varsa? '$ arr = array (1 => 1,3 => 3,5 => 5);' veya '$ arr = array ('a' => 1, 'b' => 3, 'c' => 5); ' – AbraCadaver

+0

http://stackoverflow.com/questions/3430194/performance-of-for-vs-foreach-in-php –

cevap

1

Aşağıdaki kodu düşünün Çalışıyorum Foreach kullanımı kullanım durumlarını kapsayacaktır.

Bellek sunulduğunda, foreach, kaputun altında, kısmi olarak daha hızlı olabilir.

+0

Bir küçük ayar - Eğer döngüyi başlatmadan önce bir değişkene 'count ($ array)' atarsanız PHP, her yineleme döngüsünü saymak zorunda kalmaz . Küçük bir performans tasarrufu, ancak fark edilir. Eğer bir sayım gerektiren bir şey yapıyorsanız (örneğin bir '$ i' değişkenini kullanarak) 'for' döngüsünü kullanmak' foreach 'kadar mantıklıdır. –

+0

Doğru, sahte kod olsa bile, her halükarda cevabı düzenledim. – Robbkore

+0

Dizinin son öğesini neden atlıyorsunuz? –