Navigate / search

Php Çok Boyutlu Diziler

Şimdide Php’de Çok boyutlu dizileri ele alacağız.Çok boyutlu dizi denince akla kategori mantığı gelebilir.Örneği bir kategorileme yapalım;
Nokia
6300
5310
N95
N97
Sony Ericsonn
K750i
K790i
Samsung
E250
U600
Gibi olsun…Bütün bunları bir değişkene nasıl atarız.Tabiki diziler, ama nasıl diziler, çok boyutlu diziler.Verdiğimizi örneğe uygun bir çok boyutlu dizi oluşturacağız.Bu örneği inceledikten sonra sizde kendiniz bunlara benzer örnekler yapmaya çalışın.Örneğin kolay anlaşılabilmesi için oluşturduğum 3. boyuttaki dizileri alt alta yazacağım

1
2
3
4
$telefonlar=array(    "Nokia"=>array("6310","5310","N95","N97"),
                      "Sony Ericsonn"=>array("K750i","K790i"),
                      "Samsung"=>array("E250","U600")
);

Çok zor olmayan bir yöntemle çok boyutlu diziler oluşturabiliyoruz.Şimdi bu dizileri foreach ile yazdıralım…

1
2
3
4
5
6
foreach ($telefonlar as $marka=>$modelno){
     echo $marka."<br>";
     foreach ($modelno as $model){
           echo "&nbsp;&nbsp;&nbsp;".$model."<br>";
     }
}

Dizileri Tabloya Aktarmak Foreach

Foreach komutuyla dizileri yazdırmayı çğrenmiştik.Şimdiki dersimizde diziden gelen anahtar ve değerleri bir tabloya yazdıracağız.Önceki dersimizden farklı bir bilgi içermeyen sadece php içinde html kullanımında size yardımcı olacak bir derstir.Aynı şekilde dizi değişkenimizi tanımlıyor değerlerini veriyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
$ozellik[marka]="Nokia";
$ozellik[model]="5300";
$ozellik[kamera]="1.3 Mp";
$ozellik[mp3]="var";
$ozellik[bluetooth]="var";
$ozellik[fmradio]="var";
 
echo "<table border=1>";
foreach ($ozellik as $nitelik=>$durum){
      echo "<tr><td>$nitelik</td><td> $durum</td></tr>";
      }
echo "</table>";

Döngüye başlamadan önce table border=1 yazarak tablomuzu açtık.Döngü içinde de tablomuzu oluşturmak için tr ile bir satır açtık.Sonra niteliğimizi td içine alarak bir hücreye yerleştirdik.Aynı şekilde özellik durumunu gösteren değişkenimizide td içine alıp aynı satırda bir hücre daha oluşturduk.Daha son /tr ile satırımızı bitirdik.Döngü her döndüğünde tr ile açılıp /tr ile kapandığı için her döngü turu bir satıra yazılacaktır.

Dizilerin Döngülerle Kullanımı – Alfanumerik

Alfanumerik Dizilerin Döngülerle Kullanımı

Dizi anahtarlar yani indisleri numerik olmayan dizileri bir kaç ders önce görmüştük.Bu dizilerde foreach döngüsünü kullanmak, numerik anahtarı dizilerde foreach kullanmaktan biraz farklıdır.Foreach yapısı şu şekildedir

foreach ($degisken as $anahtar=>$deger){
}

Bu döngüde ilk önce dizi değişkenimiz yazılır ve as koyulur.Sonrasına yazdığımız $anahtar=>$deger ise dizi değişkenimizdeki her bir elemanın anahtarını ve değerini gösterir.Döngü her döndüğünde sıradaki elemanın anahtar ve değer çiftini alır.
Telefon dizisi örneğimizi foreach ile yazdırmayı deneyelim.

1
2
3
4
5
6
7
8
9
10
$ozellik[marka]="Nokia";
$ozellik[model]="5300";
$ozellik[kamera]="1.3 Mp";
$ozellik[mp3]="var";
$ozellik[bluetooth]="var";
$ozellik[fmradio]="var";
 
foreach ($ozellik as $nitelik=>$durum){
      echo "$nitelik : $durum";
      }

bu kodlarımızı çalıştırırsanız sonucun şu şekilde olacağını görürsünüz.

marka : Nokia
model : 5300
kamera : 1.3 Mp
mp3 : var
bluetooth : var
fmradio : var

Dizilerin Döngülerle Kullanımı – Numerik

For Döngüsü ile Numerik Dizilerin Döngülerle Kullanımı

Numerik dizilerde indis (anahtar) isimleri sayılardan oluştuğunu önceki derslerimizde öğrendik.Şimdi bu değişkenleri tek tek yazarak değilde döngüler ile kullanmayı göreceğiz.

İlk döngümüz For döngüsü

$ogrenci[1]="Ali";
$ogrenci[2]="Esra";
$ogrenci[3]="Murat";
$ogrenci[4]="Hakan";
 
for ($sayac=1;$sayac&lt;=count($ogrenci);$sayac++) {
       echo $ogrenci[$sayac]."";
}

Dizi tanımlamayı zaten görmüştük oraya hiç deyinmiyorum.
For döngüsünde bir sayaç belirledik.Bu sayacın başlangıcın ilk indisimiz olan “1″ yaptık.(For döngüsünde hatırlamadığınız yerler varsa mutlaka o konuyu birkez daha gözden geçirin).For döngüsü dersinde anlattığım koşul kısmına ise count() fonksiyonuyla dizinin değişken sayısısını yazdırıyoruz.Böylece for döngüsü sayacı “1″den başlayıp dizinin eleman sayısı olan 4 e kadar dönecektir.Her döngü dönüşünde “$ogrenci[$sayac]” komutundaki sayaç yerine o döngüdeki sayaç değeri yazacaktır.İlk sayaç değerimiz 1 olup $ogrenci[1]=”Ali” değerimizi gösterecektir.Her döngüde sayacımız bir artacak ve 4. anahtarımıza kadar döngü dönecek ve öğrenci isimlerini yazdıracaktır

Foreach Döngüsü ile Numerik Dizilerin Döngülerle Kullanımı

Foreach döngüsü For döngüsüne göre daha basit bir yapıya ve kolay kullanım özelliğine sahiptir.Herhangi bir sayaç veya başka bir değişken belirlemimize gerek yoktur.Şimdi ayni dizide Foreach kullanımına bakalım

$ogrenci[1]="Ali";
$ogrenci[2]="Esra";
$ogrenci[3]="Murat";
$ogrenci[4]="Hakan";
 
foreach ($ogrenci as $ogrenciadi){
       echo $ogrenciadi."";
}

Gördüğünüz gibi Foreach döngüsünde sayaçlarla uğraşmadan aynı işi yaptık.Foreach ‘teki mantık şöyledir.
Dizinin eleman sayısı kadar döngüye gir ve her döngüde sıradaki elemanı “as” kelimesinden sonra gelen değişkene yazdır.

Dizilerin Eleman Sayısını Bulmak-count()

Dizilerin Eleman Sayısını Bulmak
Bazı durumlarda oluşturulan dizilerin eleman saysını öğrenmemiz gerekebilir.Dizilerdeki eleman sayısını bulmak için PHP’nin hazır fonksiyonlarından olan count() fonksiyonunu yada sizeof() fonksiyonunu kullanırız.Hemen bir örnekle dizilerin eleman sayısını bulmayı gösterelim

1
2
3
4
$mevsimler=array("ilkbahar","yaz","sonbahar","kış");
$mevsim_sayisi=count($mevsimler);
$mevsim_sayisi=sizeof($mevsimler);
echo "Bir yılda $mevsim_sayisi mevsim vardır";

count() veya sizeof() fonksiyonuyla dizideki eleman sayısını $mevsim_sayisi değişkenin içine attık ve echo ile ekrana yazdırdık.