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:

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

    

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
(
    [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

Bu blogdaki popüler yayınlar

Html Etiketleri - head ve title Etiketi

Html Etiketleri - meta Etiketleri

PHP Laravel - Middleware (Ara Katman)