/ PHP
  1. PHP
  2. Php Foreach Döngüsü Kullanımı

Php Foreach Döngüsü Kullanımı

Foreach döngüsü genellikle bir dizi, obje v.s sonunu bilmediğimiz zaman kullandığımız bir fonkisyondur.

Foreach döngüsü dizi içerisindeki bütün elemanları gezdikten sonra durur.Örnekler üzerinden açıklamaya başlarsak mysql veritabanından sarı saçlı, mavi gözlü bütün kullanıcıları çektiğimizi düşünelim. Bu tanıma uyan kaç adet kullanıcı olduğunu bilmiyoruz ozaman veritabanından gelen veriyi foreach içine alıp bu tanıma uyan bütün kullanıcıları rahatlıkla bulabiliriz.

Peki sadece boyutunu bilmediğimiz diziler içinmi kullanırız ? bu sorunun cevabı hayır dizinin boyutunu biliyorsak yine kullanabiliriz fakat genellikle dizi boyutunu bilmediğimiz zaman kullandığımız bir fonksiyondur.

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
32
33
34
<?php 

	$sehirler = array(
	    'İstanbul',
	    'Ankara',
	    'Adana',
	    'Kahramanmaraş',
	    'Şırnak',
	    'Kayseri',
	    'Malatya'
	);

	foreach($sehirler as $sehir)
	{

	    echo $sehir;
	    echo "<br>";

	}
    
/*
    //ÇIKTI

    İstanbul
    Ankara
    Adana
    Kahramanmaraş
    Şırnak
    Kayseri
    Malatya

*/

?>

Yukarıdaki örnekde sehirler dizimize birkaç şehir ekledik.Ardından Foreach döngüsünde $sehirler kısmını yazdık as ( alias ) ile foreach her döndüğünde içindeki değerlere erişebilmek için $sehir adında bir değişkene aktardık. Artık foreach her dönüşünde $sehir değişkeninde farklı bir şehirin adı olacaktır. En son şehir adını ekrana basıp <br> ile bir boşluk bıraktık ve çıktımız yukarıda gözüktüğü olacaktır.

Foreach döngüsü ile dizimizin anahtar değerlerinide alabiliriz.Yukarıdaki örneğimizde eğer dizimizin anahtar değerlerinide yazdırmış olsaydık 0 dan başlayıp 6’ya kadar rakamları yazacaktı.Anahtar değerleri yazdırma ile’de bir örnek 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
32
<?php

    $isimler = array(
        'ali',
        'ahmet',
        'sezen',
        'sezai',
        'durmuş',
        'murat'
    );

    foreach($isimler as $anahtar => $isim)
    {

        echo " ANAHTAR => " . $anahtar . " VE ISIM => ".$isim;
        echo "<br>";

    }

/*
    //ÇIKTI

    ANAHTAR => 0 VE ISIM => ali
    ANAHTAR => 1 VE ISIM => ahmet
    ANAHTAR => 2 VE ISIM => sezen
    ANAHTAR => 3 VE ISIM => sezai
    ANAHTAR => 4 VE ISIM => durmuş
    ANAHTAR => 5 VE ISIM => murat

*/

?>

Yukarıdaki anahtar değerlerini yazdırma örneğinde ise yine bir dizi tanımladık fakat bu sefer dizimid isimleri ekledik. Daha sonra foreach döngümüze ilk olarak $isimler değişkenini verdik. Burayı dikkatli okumanız gerekmektedir. Ardından as takısı ile $anahtar adlı değişkene her dönüşdeki anahtar değerini atamış olduk ve verimize erişebilmek için de anahtar değişkeninde sonra => işareti ile verilerimiz bu değişkende tutulacağını işaret etmiş olduk.

En son olarakda anahtar değerlerini ve isimlerini alt alta yazdırdık.Dersi bitirmeden önce son bir örnek daha yapalım fakat bu sefer biraz daha karmaşık olsun sayılar , yazılar , anahtarların bazılarını elle girelim.

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
32
33
34
35
36
37
38
39
40
<?php 

    $veriler = array(
            74            => 'armut',
            'ingilizce'   => 'elma',
            'testanahtar' => 'ayşe',
            1,
            2,
            'gülelim'     => 90,
            'filiz',
            'gel'         => 'istanbul',
            'leyla',
            99
    );

    foreach ($veriler as $anahtar => $veri)
    {

        echo " ANAHTAR => " . $anahtar . " VE ISIM => ".$veri;
        echo "<br>";

    }

/*
    //ÇIKTI

    ANAHTAR => 74 VE ISIM => armut
    ANAHTAR => ingilizce VE ISIM => elma
    ANAHTAR => testanahtar VE ISIM => ayşe
    ANAHTAR => 75 VE ISIM => 1
    ANAHTAR => 76 VE ISIM => 2
    ANAHTAR => gülelim VE ISIM => 90
    ANAHTAR => 77 VE ISIM => filiz
    ANAHTAR => gel VE ISIM => istanbul
    ANAHTAR => 78 VE ISIM => leyla
    ANAHTAR => 79 VE ISIM => 99

*/

?>

Son Örneğimizde veriler adında bir dizi tanımladık bu dizimizde içine şehirler,meyveler,isimler,sayılar ve bazı anahtarlar ekledik. Bazı verilere de anahtar eklemedik. Foreach döngümüzün içinde veriler değişkenini yazdık ve yine as ile anahtarımızı işaret ettik. Ardından anahtardan sonra => işareti ilede içindeki veriyi veri adlı değişkene aktardık.

En son olarak da yine bir önceki örnekteki gibi ekrana bastırdık. Çıktıya baktığımız zaman bu sefer bir öncekinden farklı olarak anahtarların bazıları sayı olarak değilde metin olarak eklediğimizi görüyoruz. Fakat dikkatinizi çeken bir önemli konu ise anahtar değeri atamamış olduğumuz verilerin 0 anahtarı ile başlaması gerekirken 75 sayısından başladığını görüyoruz. Bunun sebebi ilk satıra yazdığımız 74 numaralı anahtardan kaynaklanmaktadır. Dizi sanki 74 adet veri varmış gibi sonra anahtarı 75 olarak görüp 75 den başlatmaktadır.