Foreach Döngüsü

Merhaba arkadaşlar. Phphocasi.com.tr için hazırladığımız PHP derslerimizde bu ders Foreach Döngüsünün  kullanımına bakacağız. Foreach döngüsü sayesinde diziler içerisinde daha rahat geziniriz. Foreach döngüsü Dizilere indisle erişim yerine belirlediğimiz bir değişken ile de erişmemize  olanak sağlar. Döngü dizi boyutu kadar ilerlediği için for döngüsündeki gibi bir döngü şartı eklememize gerek kalmaz. Şimdi foreach döngüsünün kullanımına bakalım.

Foreach Döngüsü Kullanımı

foreach ($dizi as $d) {  	  }  foreach ($dizi as $key => $value) {  	  }

Şeklinde iki adet kullanımı mevcut.

Birinci kullanımda dizinin her bir elemanını $d değişkenine atar dizi sonlanıncaya kadarda dögümüz devam eder.

İkinci kullanımda birinci kullanımdan farklı olarak $key değişkenine dizinin indisini $value değişkenine ise dizinin değerini atar.

$d,$key,$value değişken isimlerini kullanmak zorunda değiliz. Siz istediğiniz değişken isimlerini kullanabilirsiniz.

Örnek: Bir dizinin elemanlarını foreach kullanarak ekrana yazdıralım.

$dizi = array(1,2,3,4,5,6,7,8,9,0);  foreach ($dizi as $d) {  	echo "$d-";  }

Şeklinde dizinin bütün elemanlarını ekrana yazdırabiliriz.

Bazen key değerlerinide yazdırmak isteyebiliriz mesela:

Örnek: Bir kulanıcının bilgisinin tutulduğu diziyi oluşturup foreach döngüsü ile ekrana yazdıralım.

$dizi = array("Ad" => "Vehbi", "Soyad" => "Akdoğan", "Site" => "phphocasi.com.tr");    foreach ($dizi as $key => $value) {  	echo "$key: $value <br/>";  }

Kodumuzun çıktısı aşağıdaki şekilde olacaktır.

Foreach döngüsü kullanımı
Kullanımına bakacak olursak:

Dizinin o anki değerinde key değerini $key değişkenine atıyor dizinini değeini $value değişkenine atıyor ve bu işlemi dizideki elemanlar bitinceye kadar devam ettiriyor.

İki boyutlu dizilerde foreach kullanmak için normal for döngüsündeki gibi iç içe iki foreach kullanabiliriz.

$dizi = array(  	array(1,2),  	array(3,4),  	array(5,6)  );    foreach ($dizi as $d) {  	foreach( $d as $v) {  		echo "$v-";  	}  	echo "<br/>";  }

şeklinde iki boyutlu olarak kullanabiliriz.

Foreach İle İlgili Örnekler

Örnek-1: Foreach ile 1-9 aralığındaki elemanlardan oluşan dizinin elemanlarının toplamını bulalım.

$toplam = 0;  $dizi = array(1,2,3,4,5,6,7,8,9);  foreach($dizi as $d)  	$toplam+=$d;    echo "Dizinin Elemanları Toplamı: $toplam";

 

Örnek-2: Müşteri bilgilerinin tutulduğu iki boyutlu diziyi foreach ile ekrana yazdıralım.

$dizi = array(  	"musteri-1" => array("Ad" => "vehbi", "Soyad" => "Akdoğan"),  	"musteri-2" => array("Ad" => "Taha", "Soyad" => "Kırca"),  	"musteri-3" => array("Ad" => "eren", "Soyad" => "Başaran")  );    foreach ($dizi as $key1 => $val1) {  	echo "$key1 [";  	foreach( $val1 as $key2 => $val2) {  		echo " $key2 $val2";  	}  	echo "]<br/>";  }

 

Örneğimize bakacak olursak:

  • İki boyutlu key değerleri string olan bir dizi oluşturduk.
  • Birinci foreach döngümüzde key değeri olarak musteri-1 değerini aldık ve value değeri bir array.
  • İkinici foreach döngümüz ile de $val1 değişkenine atanan dizimizin içerisinde gezindik.
  • İkinci dizimizde bir string key olduğu içinde $key2 değişkenine keyi $val2 değişkenine de dizimizin değerini atadık.
  • Son olarak istediğimiz formda dizi bilgilerimizi ekrana yazdırabiliriz. Ben musteri-1[Ad Vehbi Soyad Akdoğan] şeklinde yazdırdım.

Örnek-3: Karışık formda verilen bir dizinin yani 1. elemanı dizi 2. elemanı normal değer şeklinde verilen dizinin tüm elemanlarını ekrana yazdıralım.

$dizi = array(  	1,  	array("vehbi","akdoğan"),  	"mobilhanem",  	array("web" => "http://phphocasi.com.tr")  );  foreach ($dizi as $d) {  	if(is_array($d)) {  		foreach($d as $v) {  			echo "$v - ";  		}  		  	}else {  		echo " $d";  	}  	echo "<br/>";  }

is_array() fonksiyonu bildiğiniz üzere parametre olarak aldığı değerin dizi olup olmadığını kontrol ediyor dizi ise TRUE değilse FALSE döndürüyordu. Bizde is_array() fonksiyonu kullanarak eğer değişkeinin veri tipi array ise ikinci foreach döngümüz ile dizinin içerisindeki elemanları da ekrana yazdırmış olduk.

 

Evet arkadaşlar Foreach Döngüsü dersimizin sonuna geldik. Bir Sonraki Dersimizde bu güne kadar öğrendiğimiz konular hakkında alıştırmalar yapacağız. Php Dersleri – Genel Tekrar 1 Dersimizde görüşmek üzere bol yazılımlı günler ?

Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.

Tüm Php Dersleri için tıklayınız..

127
Üzerine gel