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 "<pre>";
print_r($sinif);
echo "</pre>";
?>
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]."<br>";
echo $sinif["Adı"][1]."<br>";
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
$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 "<br>";
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 "<br>";
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
$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 "<pre>";
print_r($otel);
echo "</pre>";
?>
Ç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
?>
Mesut Velioğlu 20/09/2020
yönetici 21/09/2020
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME