foreach
döngüsü diziler üzerinde yineleme yapmayı kolaylaştırmaktadır. foreach
yalnızca diziler ve nesneler için kullanılabilir. Bir dizideki her öğe için bir kod bloğunda dolaşır.
Foreach döngüsü yalnızca dizilerde çalışır ve bir dizideki her anahtar / değer çifti arasında döngü yapmak için kullanılır.
İki sözdizimi mevcuttur:
1 2 3 4 5 6 7 8 9 10 11 12 13 | //yapı 1 foreach (dizi_ifadesi as $değer) { deyim } //yapı 2 foreach (dizi_ifadesi as $isim => $değer) { deyim } |
Her döngü yinelemesi için, geçerli dizi öğesinin değeri $deger atanır ve dizi işaretçisi son dizi öğesine ulaşana kadar birer birer hareket ettirilir.
Örnek:
Aşağıdaki örnek, verilen dizinin ($ colors) değerlerini verecektir:
1 2 3 4 5 6 7 8 9 | <?php $renkler = array("kırmızı", "yeşil", "mavi", "siyah"); foreach ($renkler as $renk) { echo "$renk <br>"; } ?> |
Ekran Çıktısı:
1 2 3 4 5 6 | kırmızı yeşil mavi siyah |
Yukarıdaki örnekte gördüğümüz gibi $renkler dizisi üzerinde hareket ederek ilgili sıradaki değeri $renk değişkenine aktarıp döngü içinde ekrana yazdırıyoruz.
Örnek: Aşağıdaki örnekte anahtar-değer çiftinden oluşan bir dizi mevcuttur. foreach döngüsü ile bu anahtarları ve değerleri okuyabiliriz. Ancak bunu yapmak için döngü içindeki $değer olan kısmı dizideki gibi $anahtar => $deger olarak değiştirmek gerekir. Dizideki her öğe üzerinde hareket ettiğimizde bu sefer anahtar ve değerleri de okuma imkanımız olacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $ogrenci=[ "ad" =>"Hüseyin", "soyad" =>"ÖZ", "numara"=>67, "sinif" =>"12D" ]; foreach ($ogrenci as $anahtar => $deger) { echo "<strong>$anahtar</strong>-$deger <br>"; } ?> |
Ekran Çıktısı:
ad-Hüseyin
soyad-ÖZ
numara-67
sinif-12D
Örnek: Anahtar değer çifti örneği;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $a = array( "bir" => 1, "iki" => 2, "üç" => 3, "on yedi" => 17 ); foreach ($a as $anahtar => $deger) { echo "<strong>$anahtar</strong>-$deger <br>"; } ?> |
Çıktı:
bir-1
iki-2
üç-3
on yedi-17
Örnek : İki boyutlu bir liste üzerinde öğrenci bilgilerini okuma yapalım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php $ogrenciler = [ [ "ad" =>"Hüseyin", "soyad" =>"ÖZ", "numara"=>67, "sinif" =>"12D" ], [ "ad" =>"Hayri", "soyad" =>"KOÇ", "numara"=>113, "sinif" =>"12D" ], [ "ad" =>"Taylan", "soyad" =>"ÇELİK", "numara"=>123, "sinif" =>"12D" ] ]; foreach($ogrenciler as $ogrenci){ foreach($ogrenci as $anahtar => $deger){ echo "<strong>$anahtar</strong>-$deger <br>"; } echo "<hr>"; } ?> |
Çıktı:

Örnek: $dizi_sayilarim=array(14,8,9,4,5,8,9,9,1,6,7,1,7,4,2,2); şeklinde tanımlı olan dizideki sayıların toplamını bulan PHP kodunu yazınız.
1 2 3 4 5 6 7 8 9 | <?php #tasarimkodlama.com $dizi_sayilarim=array(14,8,9,4,5,8,9,9,1,6,7,1,7,4,2,2); foreach ($dizi_sayilarim as $deger) { echo "$deger <br>"; } |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 14 8 9 4 5 8 9 9 1 6 7 1 7 4 2 2 |
Örnek: 1 ile 50 arasında rastgele üretilen sayının tanımlı olan $sayilarim=aray(42,25,18,29,36,45,27,11,7,4,2,42); dizisinde olup olmadığını bulup ekrana yazdıran PHP kodunu yazınız.
1 2 3 4 5 6 7 8 9 10 11 12 | <?php #tasarimkodlama.com $rastgele = rand(1,50); $sayilarim = array(42,25,18,29,36,45,27,11,7,4,2,42); foreach ($sayilarim as $deger) { if($rastgele == $deger) echo "$deger dizide var <br>"; } |
Çıktı:
1 2 3 | 25 dizide var |
1 Yorum