Arama

PHP For ve Foreach Döngüsü

  • Paylaş:
post-title

Geliştirdiğimiz projelerde en çok kullandığımız yapıların başında gelenlerden ikisi for ve foreach döngüleridir. Foreach döngüsü bize bir dizinin varolan tüm elemanlarını tarayarak dizi elemanları üzerinde işlemler yapmamızı sağlar.

For ve Foreach Döngüleri Arasındaki Fark Nedir ?

Bu iki döngü tipi arasındaki en temel fark şudur. For döngüsünde, döngünün kaç defa döneceğini bizim belirlememiz gerekiyor. Bunu statik bir şekilde elle de girebiliriz, dizinin eleman sayısına göre ayarlayarak biraz daha dinamik hale de getirebilir. Foreach döngüsünde ise biz döngüye sadece diziyi veriyoruz, döngü dizinin tüm elemanlarını dönüyor.

Örneğin elimizde standart biz dizi olduğunu düşünelim ve bunu for ile dönerek değerleri ekrana basalım;

$dizi = ['birinci eleman', 'ikinci eleman', 'üçüncü eleman'];

//Burada döngünün kaç defa döneceğini biz elle giriyoruz.
for ($i=0; $i < 3; $i++) {
  echo $dizi[$i]." - ";
}

//Burada ise count() fonksiyonu yardımıyla dizinin eleman sayısını alıp, 
//bu sayıya kadar dönmesini söylüyoruz
for ($i=0; $i < count($dizi); $i++) {
  echo $dizi[$i]." - ";
}

/*
Ekran çıktısı:
birinci eleman - ikinci eleman - üçüncü eleman -
*/

Burada iki döngüde bize aynı sonucu verecektir. 

Peki bunu foreach döngüsüyle nasıl yapabiliriz ? 

$dizi = ['birinci eleman', 'ikinci eleman', 'üçüncü eleman'];

foreach ($dizi as $eleman) {
  echo $eleman." - ";
}

Dikkat ettiyseniz foreach döngüsünde, döngünün kaç kere döneceğini biz belirlemiyoruz. Döngü, verilen dizinin eleman sayısı kadar dönüyor. Burada kilit nokta ise şu; döngü her dönüşünde dizinin o anki elemanını $eleman değişkenine atıyor. Böylece bizler daha hızlı ve daha kısa kodla işlem yapıyoruz.

Obje Türündeki Dizilerde Foreach Döngüsü

Eğer elimizde obje türünden bir dizi varsa ozaman foreach döngümüzde ki syntax ufak bir değişiklik gösterecektir. Şöyleki;

$dizi = [
  "eleman1" => 'birinci eleman',
  "eleman2" => 'ikinci eleman'
];

foreach ($dizi as $key => $value) {
  echo $key." ".$value."<br>";
}

/*
Ekran çıktısı:
eleman1 birinci eleman
eleman2 ikinci eleman
*/

Şimdi obje türündeki dizilerde her elemanın bir key bir de value özelliği vardır. Bu örneğimizde key değerimiz eleman1 ve eleman2, value değerimiz ise birinci eleman ve ikinci elemandır. Bu diziyi foreach ile dönerken de hem key hem value değerlerimizi ekrana basıyoruz. Burada isterseniz sadece value değerini döngüden alıp ekrana basabilirsiniz. O zaman da kodumuz şöyle olacaktır;

foreach ($dizi as $value) {
  echo $key."<br>";
}

/*
Ekran çıktısı:
birinci eleman
ikinci eleman
*/

 

Etiketler:
Bir yorum bırak