Php Çok Boyutlu Diziler Nedir ve Nasıl Kullanılırlar?
PHP çok boyutlu diziler tek boyutlu olabileceği gibi çok boyutlu dizilerde vardır. Örneğin bir müşteri listesini dizide tutmak istersek müşteriler bir dizi müşteri bilgileri de müşteriler dizisi içinde bir dizi olur. Çok boyutlu diziler bizim işimizi kolaylaştırdığı gibi sistem performansını da artırır.
Çok Boyutlu Diziler
Çok boyutlu dizilerin kullanım şeklinin normal dizi kulanım şeklinden bir farkı yoktur. Bir önceki dersimizde verdiğimiz özellikler çok boyutlu diziler içinde geçerlidir. Hemen bir örnek yapacak olursak:
<?php $arr = array( array(1,2,3,4,5), array(6,7,8,9,10), array(11,12,13,14,15), array(16,17,18,19,20) ); ?>
Şeklinde istediğimiz boyutta dizi oluşturabiliriz. Oluşturduğumuz dizide istersek string key değeride kullanabiliriz. Hemen string key kullanımına da bir örnek verecek olursak:
<?php $arr = array( array( "ad" => "Vehbi", "soyad" => "AY", "site" => "YazılımDelisi.com"), array( "ad" => "Taha", "soyad" => "KIRCA", "site" => "YazılımDelisi.com"), array( "ad" => "Eren", "soyad" => "BAŞARAN", "site" => "YazılımDelisi.com") ); ?>
Yukarıdaki şekilde istediğimiz kadar iç içe dizi oluşturabiliriz. Dizinin elemanlarına erişmek için ise yine dizi indislerini kullanıyoruz. Oluşturduğumuz dizinin elemanlarını ekrana yazdıracak olursak:
<?php $arr = array( array( "ad" => "Vehbi", "soyad" => "AY", "site" => "YazılımDelisi.com"), array( "ad" => "Taha", "soyad" => "KIRCA", "site" => "YazılımDelisi.com"), array( "ad" => "Eren", "soyad" => "BAŞARAN", "site" => "YazılımDelisi.com") ); for($i = 0;$i<count($arr);$i++) { echo 'Ad:'.$arr[$i]["ad"]." Soyad:".$arr[$i]["soyad"]." Web:".$arr[$i]["site"]."<br/>"; } ?>
Yazdırma kısmına bakacak olursak:
$arr[$i] dediğimiz dizinin i. elemanı olduğunu zaten biliyoruz. $arr[$i][$j] arr dizisinin i. elemanı bir dizi olduğunu biliyoruz ve i. dizininde j. elemanını işaret etmiş oluyoruz. İkinci dizimizin indislerini string olarak verdiğimiz için yukarıda indislere ad,soyad,site indisleriyle eriştik. Biz bunlara 0,1,2 olarakta erişebiliriz. Konumuz bu kadar arkadaşlar şimdi öğrendiklerimizi pekiştirmek adına örnekler yapalım ve dersimizi sonlandıralım.
Çok Boyutlu Dizilerle Alakalı Örnekler
Örnek-1: 10×10 boyutunda bir dizinin elemanlarını 1-1000 aralığında rastgele sayılarla doldurup dizimizi ekrana yazdıralım.
<?php $dizi = array(); for($i=0;$i<10;$i++) { for($j = 0;$j<10;$j++) { $dizi[$i][$j] = rand(1,1000); } } for($i=0;$i<count($dizi);$i++) { for($j = 0; $j<count($dizi[$i]);$j++) { echo $dizi[$i][$j]." "; } echo "<br/>"; } ?>
Örneğimizi açıklayacak olursak:
- Öncelikle dizimizin elemanlarını rastgele oluşturduk.
- Daha sonra ekrana yazdırırken 1. for döngümüz dizi boyutuna kadar gitsin dedik.
- 2. döngümüz ise dizi içindeki ikinci dizimizin boyutuna kadar gidiyor. Bu örnekte dizimiz 10×10 boyutunda olduğu için dizi boyutu kadarda gitse sıkıntı olmaz ama farklı dizi boyutlarında sıkıntı olacağı için biz 2. dizimizin boyutu kaçsa ona kadar gitsin dedik.
- Daha sonra dizimizin değerini ekrana yazdırdık .
Örnek-2: 1-150 aralığındaki sayıların bölenlerini tutan iki boyutlu bir dizi hazırlayalım ve dizimizi ekrana yazdıralım.
Dizi yapımız:
array( array("sayi"=> "100", "bolenler" => array(1,2,4,5,10,20,25,50,100)));-
şeklinde bir dizi yapısı oluşturup daha sonrada ekrana yazdıralım.
<?php $dizi = array(); $sayilar = array(); for($i=1;$i<=150;$i++) { $dizi["sayi"] = $i; $dizi["bolenler"] = array(); // sayının bölenlerinin bir dizi olduğunu söyledik for($j=1;$j<=$i;$j++) { if($i % $j == 0) { // bölünüyor demektir. $dizi["bolenler"][] = $j; }else { // bölünmüyor demektir bir işlem yapmaya gerek yok. } } $sayilar[] = $dizi; // sayılar dizisine bizim yukarıdaki oluşturduğumuz diziyi ekledik. } for($i=0;$i<count($sayilar);$i++) { echo "Sayı: ".$sayilar[$i]["sayi"]." Bölenleri {"; for($j = 0; $j<count($sayilar[$i]["bolenler"]);$j++) { echo $sayilar[$i]["bolenler"][$j]." "; } echo "}<br/>"; } ?>
Kodumuzu açıklayacak olursak:
- $dizi değişkenini bir adet veri tutabilmek için oluşturduk.
- $sayilar dizimizi ise oluşturduğumuz her $dizi değişkenini $sayilara ekleyip tek dizi elde etmek için kullanıyoruz.
- daha sonra for döngüsü ile 1-150 aralığındaki sayıları gezindik.
- 2. döngümüzde sayının bölenlerini $dizi[“bolenler”][] şeklinde yeni bir diziye attık.
- Daha sonra $dizi değişkenini tamamladıktan sonra $sayilar dizisine attık.
- Dizi yazdırma kısmına gelincede normal bir dizi yazdırma işlemi yaparak dizimizi ekrana yazdırdık.
Temel yapıda diziler konusunu bitirdik arkadaşlar. Dizileri istediğimiz şekilde kullanabiliriz ve dizilere ait fonksiyonlar ile işlerimizi kolayca halledebiliriz. Bu fonksiyonları ilerleyen derslerimizde ihtiyaç duydukça kullanacağız.
Bir sonraki dersimiz olan Php Dersleri – Foreach Döngüsü dersimzde görüşmek üzere.
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altındaki yorum bölümünden sorabilirisiniz.
PHP çok boyutlu diziler konusunu bu yazımızda gördük. Aşağıdaki linke tıklayarak daha bir çok içeriğe ulaşarak bilginizi artırabilirsiniz. Ayrıca aşağıdaki Sosyal Medya linklerine tıklayarak bizi Sosyal Medya üzerinden de takip edebilirsiniz.
https://yazilimdelisi.com/category/web-gelistirme/php/

