PHP ÇOK BOYUTLU ( Multidimensional ) DİZİLER

Birden çok anahtarı olan dizilere çok boyutlu dizi denir. Çok boyutlu dizilerde iç içe istenildiği kadar dizi oluşturulabilir. Kullanım şekli şu şekildedir.

<?php

$dizi_adi   =  array(

   anahtar1 => array(değer1.1,değer1.2....),
				 
   anahtar2 => array(değer2.1,değer2.2....),
				 
			 ...);
				 
 ?>

Şu şekilde de gösterilir.

       
<?php

$dizi_adi  =  array(

   anahtar1 =>array(anahtar1.1 => değer1.1,
				 
                    anahtar1.2 => değer1.2,...),
                 				 
   anahtar2 =>array(anahtar2.1 => değer2.1,
				 
                    anahtar2.2 => değer2.2,...),
                 				 	 
			 ...);
 ?>

Görüldüğü gibi çok boyutlu dizilerin her bir satırı tek boyutlu yada ilişkilendirilmiş dizilerden oluşmaktadır.

İlişkilendirilmiş dizilerde olduğu gibi burada anahtar olarak kullanılan alanlar sadece integer yada string veri türünde olabilir. Değerlerin ise tür sınırlandırılması bulunmaktadır.

Dizi içinde başka bir dizi kullanarak çok boyutlu bir yapı oluşturmanız da mümkün.

<?php

$sinif = array(

         array("1A","3B","2D"),
		 
         array("Hakan", "Ahmet", "Serkan"),
	
         array(95, 65, 35)
		 
         );

echo "
";

print_r($sinif);

echo "
"; ?>
Array
(
    [0] => Array
        (
            [0] => 1A
            [1] => 3B
            [2] => 2D
        )

    [1] => Array
        (
            [0] => Hakan
            [1] => Ahmet
            [2] => Serkan
        )

    [2] => Array
        (
            [0] => 95
            [1] => 65
            [2] => 35
        )

)

Yukarıda görüldüğü üzere çok boyutlu dizilerde indis değerlerini ilişkili belirtmek veya belirtmemek sizin ihtiyacınıza bağlıdır. Fakat erişim kolaylığı için indis değerlerini özel olarak belirtmek fayda vardır.

"0 => array" başlayarak örneğimizde indis numara belirtelim ve 3b sınıfında ki Ahmet öğrencinin notuna erişelim.

<?php
$sinif = array(

     0 =>array("1A","3B","2D"),
	
     1 =>array("Hakan", "Ahmet", "Serkan"),
	
     2 =>array(95, 65, 35)
);


echo "sınıfı.:".$sinif[0][1]." -".$sinif[1][1]

             .".:".$sinif[2][1];
?>

ÇIKTI:

sınıfı.:3B - Ahmet.:65

Anahtar-değer mantığını çok boyutlu dizilerde de kullanabilirsiniz.

<?php


$sinif  =  array(

 "Sınıf"=> array("1A","3B","2D"),
	
 "Adı"  => array("Hakan", "Ahmet", "Serkan"),
	
 "Notu" => array(95, 65, 35)
);


echo $sinif["Sınıf"][1]."
"; echo $sinif["Adı"][1]."
"; echo $sinif["Notu"][1]; ?>

ÇIKTI:

3B

Ahmet

65

Günlük hayatta nasıl ki bazı bilgiler birbirleriyle bağlantılıysa php dilimizde de veriler birbiriyle bağlantılıdır. Aslında bu durum bütün programlama dillerinde geçerlidir.

Aşşağıdaki şemaya göre dizimizi oluşturalım.


php array

<?php

$okul = array(

 "8/a"=>array("hakan"=> 95,
 
              "fatih"=> 45,
			  
			  "ayşe" => 65 ),
			  
 "8/b"=>array("timur"=> 55,
 
              "emine"=> 80,
			  
			  "ömer" => 55 )
 
);
 
 echo $okul["8/b"]["timur"]; // Ekrana 55 yazar
 
 echo "
"; echo $okul["8/a"]["fatih"]; // Ekrana 45 yazar ?>

Aynı diziyi şimdi farklı bir şekilde tanımlayalım.

<?php

$okul["8/a"]["hakan"] = 95;

$okul["8/a"]["fatih"] = 45;

$okul["8/a"]["ayşe"]  = 65;

$okul["8/b"]["timur"] = 55;

$okul["8/b"]["emine"] = 80;

$okul["8/b"]["ömer"]  = 55;
 
  echo $okul["8/a"]["ayşe"]; // Ekrana 65 yazar
 
  echo "
"; echo $okul["8/b"]["emine"]; // Ekrana 80 yazar ?>

Yine bir örnekle açıklamak gerekirse bir otelin katları bir dizi olarak düşünülürse katlardaki odalar da bir dizi olarak düşünülebilir. Dolayısıyla burada dizi içindeki diziler söz konusudur. Aşağıda ki şemaya göre dizimizi oluşturalım.


php array

<?php

 $otel = array(

 "kat1"=>array("oda1"=>"Hasan",
 
               "oda2"=>"Ahmet",
			   
			   "oda3"=>"Kenan"),
 
 "kat2"=>array("oda1"=>"Mert",
 
               "oda2"=>"Ali",
			   
			   "oda3"=>"Metin"),
 
 "kat3"=>array("oda1"=>"Ayşe",
 
               "oda2"=>"Fatma",
			   
			   "oda3"=>"Emine")
);

echo "
";

print_r($otel);

echo "
"; ?>

ÇIKTI:


Array
(
    [kat1] => Array
        (
            [oda1] => Hasan
            [oda2] => Ahmet
            [oda3] => Kenan
        )

    [kat2] => Array
        (
            [oda1] => Mert
            [oda2] => Ali
            [oda3] => Metin
        )

    [kat3] => Array
        (
            [oda1] => Ayşe
            [oda2] => Fatma
            [oda3] => Emine
        )

)

Aynı diziyi şimdi farklı bir şekilde tanımlayalım.

<?php

$otel["kat1"]["oda1"]="Hasan";

$otel["kat1"]["oda2"]="Ahmet";

$otel["kat1"]["oda2"]="Kenan";
 
$otel["kat2"]["oda1"]="Mert";
$otel["kat2"]["oda2"]="Ali";
$otel["kat2"]["oda3"]="Metin";
 
$otel["kat3"]["oda1"]="Ayşe";

$otel["kat3"]["oda2"]="Fatma";

$otel["kat3"]["oda3"]="Emine";
 
  echo $otel["kat2"]["oda3"]; // Ekrana Metin yazar

?>

Adınız

Eposta

Mesaj

4393

Güvenlik No

REKLAM
KATEGORİ
POPÜLER MAKALE