php diziler yinelenmesi için hızlı hangisi? veya başka diziler yinelenmesi için de daha hızlı olan var mı?
Fark her türlü olsa bile, o fark hiç önemli olmayacak kadar küçük olacaktır.
Eğer varsa, diyelim ki, veritabanına bir sorgu, bu sonuçlar üzerinde döngü yineleme kıyasla çok uzun sürer o for
foreach
vs {[(vs ebedi tartışma 2)]}, bir şey değişmeyecek - veri makul bir miktarda en azından eğer.
Böylece, kullanımı:
/ Düğmeleri mikro-optimizasyon bu tür düşünmeye önce optimize gerektiğini olabilir başka şeyler bol olacak.
And if you really want some numbers (even if it's just for fun), you can make some benchmark and see the results in practice.
Benim için ben bu dayanarak benim döngü almak:
foreach
Uzunluğu (veya olabilir) bilinmeyen bir dizi yineleme zaman kullanın.
for
Uzunluğu bir sayaç gerektiğinde, set veya bir dizi yineleme zaman kullanın.
while
Bulma, ya da belli bir bayrak tetikleme ifade amacı ile bir dizi yineleme olduğunuzda kullanın.
Şimdi bu gerçek, bu yüzden sonuçta aşağı kişisel tercihi / tarzı söz konusu ... sayılmasını ($ array) kullanarak, bir foreach döngü gibi döngü İÇİN kullanabilirsiniz.
Doğru hızlı iken başka $ max değişkeni ile bir $ i karşılaştırarak, her yineleme için tek çek var gibi, kullanılan, ve $ i + + dışında (veya döngü sırasında ($ max ayarı hariç) önce döngü ek çağrılar; hangi doğal olarak) herhangi bir döngü deyimi yapılır.
Eğer ((liste. süre gibi.)) Bunu kötüye başladığınızda her işlev çağrısı (yani bir ön-optimize edilmiş olduğundan) bir foreach dahil olduğunca optimize olmayacak gibi, elbette foreach ile daha iyiyiz.
Even then, array_keys() gives you the same usability as foreach, still faster. Vebeyond that, if you're into 2d-arrays, a home-made 2d_array_keys will enable you to use while all the way in a much faster way then foreach can be used (just try and tell the next foreach within the first foreach, that the last foreach had <2d_array_keys($array)> as keys --- ).
Besides, all questions related to first or last item of a loop using a while($i
Ve
while ($people_care_about_optimization!==true){
echo "there still exists a better way of doing it and there's no reason to use any other one";
}