İç içe çok boyutlu diziler nasıl kullanılır?
İç İçe Çok Boyutlu Diziler
Başlıktanda anlayacağınız üzere bu dersimizde iç içe çok boyutlu dizileri göreceğiz.Çok boyutlu diziler nedir önce onu açıklayalım örneğin bir web sitesi düşünün ve o web sitenin bir menüsünü hayal edin menülerin içerisinde birden fazla alt menüler bulunabiliyor.Örneğin bir araba menüsü düşünün araba menüsünün altında markaların olduğnu ve markaların altında da araba modellerinin olduğnu düşünebilirsiniz.Sonuç olarak bir adet arabalar adında dizimiz olacak ve daha sonra o arabar dizmizin içerisinde markalarımız yer alacak, daha sonra her bir markanın da kendi ait bir dizisi olacak ve o dizilerin altında ise o markaya ait modellerin yer alacağı bir dizi olacaktır.Böylece iç içe çok boyutlu dizi oluşturmuş olduk.Çalışma mantığı ise tamamen aynıdır değişen hiçbirşey yoktur biraz dikkat ile üstesinden gelebiliriz.Şimdi basit bir iç içe dizi oluşturup mantığını kavradıktan sonra karmaşık örneklere geçebilriz.
[<?php
$renkler = array("Kırmızı","Mavi","Yeşil",array("Gri","Turuncu","Kahverengi",));
echo "<pre>";
print_r($renkler);
echo "</pre>";
?>]
Yukarıdaki örnekte görüldüğü üzere bir adet renkler adında bir dizi oluşturuldu ve içerisinde üç adet ana renk yazıldı daha sonra dizi içerisinde bir dizi daha oluşturularak diziye bir boyut daha kazandırılmış oldu.Oluşturduğumuz diğer dizinin içerisine ise ara renkler yazdık bu şekilde dizi içerisinde dizi oluşturularak birden fazla boyut kazandırılmış oluyor.Şimdi oluşturduğumuz bu çok boyutlu dizi içerisinde istediğimiz elemana nasıl erişeceğimize bakalım örneğin çok boyut kısmındaki "Turuncu" rengini ekrana nasıl yazdıracağımıza bakalım;
[<?php
$renkler = array("Kırmızı","Mavi","Yeşil",array("Gri","Turuncu","Kahverengi",));
echo "<pre>";
print_r($renkler);
echo "</pre>";
echo $renkler[3][1];
?>]
Yukarıdaki işlemin sonucunda ise ekrana "Turuncu" yazacaktır. Hemen bunu nasıl yaptığımızı açıklayalım.Gördüğünüz bu satırda "echo $renkler[3][1];" yazdırma işlemi yaptık burada tam olarak şöyle demiş oluyoruz.Echo yani yazdır diyoruz öncelikle daha sonra "Renkler" dizisi içerisinde bir yazdırma işlemi yapacağımızı belirtiyoruz daha sonra köşeli parantezler içerisindeki "3" ün anlamı ise o numaralı indise git diyoruz ve Php 0 dan saymaya başlıyor.
0=Kırmızı
1=Mavi
2=Yeşil
3=Array
Php 3 e geldiği zaman bir diziyle daha karşılaşıyor ve biz daha sonra köşeli parantezler içerisinde "1" demişiz daha sonra Php "3" ün içerisinden tekrardan 0 dan başlayarak saymaya başlıyor.
0=Gri
1=Turuncu
Ve "Turuncu" istediğimiz değere ulaşmış olduk.Çok basit kısaca özet geçmek gerekirse "Renkler" dizisi içersinde 3. elemanın 1. elemanını yazır demiş oluyoruz.Şimdi örneğimize bir kaç boyut daha katalım ve anahtar değerleri ekleyelim.
[<?php
$renkler = array("Renk1"=>"Kırmızı","Renk2"=>"Mavi","Renk3"=>"Yeşil","Dizi2"=>array("Renk3"=>"Gri","Renk4"=>"Turuncu","Dizi3"=>array("Renk5"=>"Siyah","Renk6"=>"Sarı"),"Renk7"=>"Kahverengi",));
echo "<pre>";
print_r($renkler);
echo "</pre>";
?>]
Yukarıdaki dizimize bir boyut daha kattık ve tüm dizi elemanlarımıza anahtar değerleri eklemiş olduk şimdi en içteki dizimizden "Sarı" rengini nasıl yazdıracağımıza bakalım;
[<?php
$renkler = array("Renk1"=>"Kırmızı","Renk2"=>"Mavi","Renk3"=>"Yeşil","Dizi2"=>array("Renk3"=>"Gri","Renk4"=>"Turuncu","Dizi3"=>array("Renk5"=>"Siyah","Renk6"=>"Sarı"),"Renk7"=>"Kahverengi",));
echo "<pre>";
print_r($renkler);
echo "</pre>";
echo $renkler["Dizi2"]["Dizi3"]["Renk6"];
?>]
Yukarıdaki örneğimizde ise en iç dizideki "Renk6" anahtar değerine ait "Sarı" rengini başarılı bir şekilde yazdırmış olduk.İlk paragrafta bahsettiğimiz menü olayını ise bir araba örneği verelim;
[<?php
$arabalar = array("Modeller"=>array("Mercedes"=>array("Amg","G500","E200"),"Audi"=>array("A8","ASL","ASL8"),"Bmw"=>array("M4","İ8","M5")));
echo "<pre>";
print_r($arabalar);
echo "</pre>";
echo $arabalar["Modeller"]["Audi"][1];
?>]
Yukarıdaki örnekte ise ekrana "ASL" çıktısı verecektir.Şimdi birde iç içe çok boyutlu dizilerimizi bir sabit içerisinde nasıl kullanıyoruz ona bakalım.
[<?php
define("RENKLER",array("Modeller"=>array("Mercedes"=>array("Amg","G500","E200"),"Audi"=>array("A8","ASL","ASL8"),"Bmw"=>array("M4","İ8","M5"))));
echo "<pre>";
print_r(RENKLER);
echo "</pre>";
echo RENKLER["Modeller"]["Audi"][1];
?>]
Yukarıdaki örnekte ise sabitleri kullanarak aynı işlemi yapmış olduk herhangi bir değişiklik yok.
COMMENTS