PHP İç İçe Dizi Tanımlama Örnekleri
Bu konu anlatılırken diziler konusuna aşina olduğunuz varsayılmıştır. Diziler birden fazla değeri tutabilen özel değişkenlerdi. Peki PHP'de iç içe diziler tanımlamak mümkün mü? Elbette!
Her bir dizinde tek bir öğe yerine başka bir dizi saklayan dizilere çok boyutlu diziler denir. İki boyutlu diziler , üç boyutlu diziler vs... Çok boyutlu dizi oluştururken istenildiği kadar iç içe dizi oluşturulabilir fakat PHP'de üç boyutlu dizilerden daha büyük dizilerin insanlar tarafından yönetilmesi çok zordur bizde örneklerimizi iki boyutlu diziler üzerinden yapacağız. Peki bu kadar hikaye yeter biz bu iç içe dizileri nasıl tanımlıyoruz abi?
Anahtarları Kullanarak İç İçe Dizi Tanımlama
$araba["SUV"] = array("Kia","Skoda","Dacia");
$araba["Spor"] = array("Ferrari","BMW","Mazda");
echo "<pre>";
print_r($araba); //diziyi ekrana bastırmak için
echo "</pre>";
//internerd.net
Burada $araba değişkenini bir dizi olarak belirledik. Atama yaparken "SUV" ve "Spor" anahtarlarını kullanarak iki farklı String dizisini , $araba dizisinin içine gönderdiğimiz için bize şöyle bir iç içe dizi yapısı sağlamış oldu.
Array
(
[SUV] => Array
(
[0] => Kia
[1] => Skoda
[2] => Dacia
)
[Spor] => Array
(
[0] => Ferrari
[1] => BMW
[2] => Mazda
)
)
İç İçe Array Fonksiyonlarını Kullanarak İç İçe Dizi Tanımlama - 1
$kitapIndeks = array(
array("2017","2018","2019","2020"),
array("Fantastik","Korku","Tarih","Bilim"),
array("Çok Satan","Yeni","Klasikler")
);
echo "<pre>";
print_r($kitapIndeks); //diziyi ekrana bastırmak için
echo "</pre>";
//internerd.net
Buradaki $kitapIndeks tanımlamasında iç içe array() fonksiyonlarını kullanarak iç içe dizi tanımladık fakat anahtar değerleri değiştirilmediği için bu değerler 0'dan başlayan ve aritmetik olarak artan tam sayı değerlerini aldı. Haliyle çıktısı da şu şekilde oldu:
Bu örneğimizde ise 2.örnekten farklı olarak birinci diziyle beraber ikinci dizininde anahtarları indeks tamsayısı olarak bırakılmamış ve simüle edeceğimiz örneğe uygun string değerler, atanmış. Burada "1.Kat","2.Kat","3.Kat" birinci dizinin anahtarları , "1.Daire"..."9.Daire" anahtarları da dizinin içindeki ikinci boyuttaki dizilerin anahtarları oluyor. Çıktısı ise şu şekilde:
Array ( [0] => Array ( [0] => 2017 [1] => 2018 [2] => 2019 [3] => 2020 ) [1] => Array ( [0] => Fantastik [1] => Korku [2] => Tarih [3] => Bilim ) [2] => Array ( [0] => Çok Satan [1] => Yeni [2] => Klasikler ) )
İç İçe Array Fonksiyonlarını Kullanarak İç İçe Dizi Tanımlama - 2
$universiteOgrencisi = array(
"sinifNo" => array("1","2","3","4"),
"cinsiyeti" => array("Kiz","Erkek"),
"alani" => array("Web","Mobil","Masaüstü",
"Siber","Yapay Zeka")
);
echo "<pre>";
print_r($universiteOgrencisi);
echo "</pre>";
//internerd.net
Yapılan bu işlemde bir öncekinden farklı olarak birinci dizinin anahtarları aritmetik olarak artan indeks tam sayıları değil "sinifNo","cinsiyeti","alani" anahtarları oldu. Vereceği çıktı ise şu şekilde:
Array ( [sinifNo] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) [cinsiyeti] => Array ( [0] => Kiz [1] => Erkek ) [alani] => Array ( [0] => Web [1] => Mobil [2] => Masaüstü [3] => Siber [4] => Yapay Zeka ) )
İç İçe Array Fonksiyonlarını Kullanarak İç İçe Dizi Tanımlama - 3
$apartman = array(
"1.Kat" => array("1.Daire"=>"Melih Bey",
"2.Daire"=>"Abdullah Bey",
"3.Daire"=>"Fatma Hanım"),
"2.Kat" => array("4.Daire"=>"Tarık Bey",
"5.Daire"=>"Kısmet Hanım",
"6.Daire"=>"Sefa Bey"),
"3.Kat" => array("7.Daire"=>"Müstesna Hanım",
"8.Daire"=>"Rıfat Bey",
"9.Daire"=>"Nisa Hanım")
);
echo "<(etiketi)pre>";
print_r($apartman); //diziyi ekrana bastırmak için
echo "<(etiketi)/pre>";
//internerd.net
Array ( [1.Kat] => Array ( [1.Daire] => Melih Bey [2.Daire] => Abdullah Bey [3.Daire] => Fatma Hanım ) [2.Kat] => Array ( [4.Daire] => Tarık Bey [5.Daire] => Kısmet Hanım [6.Daire] => Sefa Bey ) [3.Kat] => Array ( [7.Daire] => Müstesna Hanım [8.Daire] => Rıfat Bey [9.Daire] => Nisa Hanım ) )
Yorumlar
Yorum Gönder