Yükleniyor

PHP'de Diziler

Aslında sıralı bir eşlemdir. Bir eşlem, değerleri anahtarlarla ilişkilendiren bir veri türüdür.

PHP'de dizi; birden çok öğeyi tek bir değişkende depolamaya olanak sağlayan bir veri yapısıdır. Bu öğeler anahtar-değer çiftleri olarak depolanır.

Aslında, bir öğe listesini depolamak gerektiğinde dizi kullanabilirsiniz. Çoğunlukla, dizideki tüm öğeler benzer veri türlerine sahiptir.

Örnek olarak yazılım dillerini bir grup halde tutmak istediğinizi varsayalım ve bu bilgilere istediğiniz zaman ulaşmanız gerekecektir. Dizi kullanmadan tek tek değişkenlere atamanız gerekmektedir. Ancak dizi kullanarak tek değişken içerisinde tüm bilgileri grup halinde tutabilirsiniz.

Dizi Oluşturma

Aşağıdaki kod sadece değişkenin dizi olduğunu belirler.

<?php 
$array = array();
//ve ya
$array = [];
?>

Dizilere değer atamak istiyorsanız aşağıdaki yöntemlerden birini tercih edebilirsiniz. Aşağıda en çok tercih edilen yöntemler listelenmiştir.

<?php 
//$dizi["key(anahtar)"] = "deger";
$programlamaDilleri = array("PHP", "JAVA", "JAVASCRİPT", "PYTHON" , "C", "DART"); 
//VE YA
$programlamaDilleri = ["PHP", "JAVA", "JAVASCRİPT", "PYTHON" , "C", "DART"];
//VE YA
$programlamaDilleri[0] = "PHP"; 
$programlamaDilleri[1] = "JAVA";
$programlamaDilleri[2] = "JAVASCRİPT";
$programlamaDilleri[3] = "PYTHON";
$programlamaDilleri[4] = "C";
$programlamaDilleri[5] = "DART";
/*
3. Örnekte key(anahtar) değerlerine göre atama yapmış olduk. Diğer iki örnekte ise  key değerlerini sırayla otomatik olarak PHP kendisi atayacaktır.
Şuan için 3 örnekte diğerleriyle aynı çıktıyı verecektir.
PHP’nin key’ini aşağıdaki gibi değiştirdiğimizde artık $programlamaDilleri[0] değeri null olacaktır. Çünkü herhangi bir değişken atanmamıştır.
*/
$programlamaDilleri[6] = "PHP"; 
$programlamaDilleri[1] = "JAVA";
$programlamaDilleri[2] = "JAVASCRİPT";
$programlamaDilleri[3] = "PYTHON";
$programlamaDilleri[4] = "C";
$programlamaDilleri[5] = "DART";
?>

Tabi bunun yanında key değerlerini özel olarak istediğimiz şekilde isimlendirebiliriz. Sadece rakamlardan oluşmak zorunda değil. Eğer vermezseniz PHP otomatik olarak kendisi 0’dan başlayarak atamaya başlar. Aşağıdaki örnekte görebilirsiniz.

<?php 
//1. Yöntem
$programlamaDilleri["bir"] = "PHP";
$programlamaDilleri["iki"]= "JAVA";
$programlamaDilleri["uc"]= "JAVASCRİPT";
$programlamaDilleri["dort"]= "PYTHON";
$programlamaDilleri["bes"]= "C";
$programlamaDilleri["alti"] = "DART"; 
//2. Yöntem
$programlamaDilleri =array(
	"bir" => "PHP";
    "iki" => "JAVA";
	"uc" => "JAVASCRİPT";
	"dort" => "PYTHON";
	"bes" => "C";
	"alti" => "DART";
);
?>

Diziler İle İşlemler

Dizileri ekrana yazdırmanın birden fazla yolu vardır.

<?php 
$programlamaDilleri[0] = "PHP"; 
$programlamaDilleri[1] = "JAVA";
$programlamaDilleri[2] = "JAVASCRİPT";
$programlamaDilleri[3] = "PYTHON";
$programlamaDilleri[4] = "C";
$programlamaDilleri[5] = "DART";
echo $programlamaDilleri[0]; // Çıktı: PHP
//$dizidegiskeni["yazdırılmak_istenilen_key"];
//bir diziyi toplu halde ekrana aşağıdaki gibi yazdırabilirsiniz. Tüm elemanları ile ekrana yazacaktır.
print_r($programlamaDilleri);
?>
<?php 
$programlamaDilleri["bir"] = "PHP";
$programlamaDilleri["iki"]= "JAVA";
$programlamaDilleri["uc"]= "JAVASCRİPT";
$programlamaDilleri["dort"]= "PYTHON";
$programlamaDilleri["bes"]= "C";
$programlamaDilleri["alti"] = "DART"; 
echo $programlamaDilleri["alti"]; // Çıktı: PHP
//$dizidegiskeni["yazdırılmak_istenilen_key"];
/*
EĞER DİZİNİN KEYİNE STRİNG BİR DEĞER VERDİYSENİZ DİZİNİN O ELEMANINI YAZDIRIRKEN TIRNAK İÇERİSİNDE YAZDIRMALISINIZ.
echo $programlamaDilleri["alti"]; // alti KEYİNE SAHİP ELEMANI YAZAR.
echo $programlamaDilleri[0]; //0 KEYİNE SAHİP ELEMANI YAZAR.
*/
?>
<?php 
$calisan["isim"] = "Ali";
$calisan["yas"] = 24;
$calisan["programlama_dili"] = "PHP";
$calisan["dogum_yeri"] = "Denizli";
echo $calisan["isim"] . " " . $calisan["yas"] . " Yaşında " . $calisan["dogum_yeri"] . " ilimizde doğmuş genç bir çocuktur. Uzmanlaştığı programlama dili " . $calisan["programlama_dili"] . " 'dir.";
//Çıktı: Ali 24 Yaşında Denizli ilimizde doğmuş genç bir çocuktur. Uzmanlaştığı programlama dili PHP 'dir.
?>

Php İç İçe Diziler (Multi Diziler)

Php'de iç içe diziler fazla tercih edilir. Çünkü yeri geldiğinde başınızı büyük belalardan kurtarır.

Birden fazla dizinin iç içe yazıldığını düşünebilirsiniz.

<?php 
/*
Oluşturulmak istenilen aşağıdaki gibi bir dizimiz olsun;

Okullar
    İlkokullar
        A İlkokulu
        B İlkokulu
        C İlkokulu
        D İlkokulu
    Liseler
        A Lisesi
        B Lisesi
        C Lisesi
        D Lisesi
Üniversiteler
    Meslek Yüksek Okulları
        A Meslek Yüksek Okulu
        B Meslek Yüksek Okulu
        C Meslek Yüksek Okulu
        D Meslek Yüksek Okulu
    Ön Lisans Okulları
        A Ön Lisans Okulu
        B Ön Lisans Okulu
        C Ön Lisans Okulu
        D Ön Lisans Okulu
*/
$okulListesi = array(
    "okullar" => [
        "ilkokullar" => [
            "A İlkokulu",
            "B İlkokulu",
            "C İlkokulu",
            "D İlkokulu"
        ],
        "liseler" => [
            "A Lisesi",
            "B Lisesi",
            "C Lisesi",
            "D Lisesi"
        ]
    ],
    "universiteler" => [
        "meslek_yuksek_okullari" => [
            "A Meslek Yüksek Okulu",
            "B Meslek Yüksek Okulu",
            "C Meslek Yüksek Okulu",
            "D Meslek Yüksek Okulu"
        ],
        "on_lisans_okullari" => [
            "A Ön Lisans Okulu",
            "B Ön Lisans Okulu",
            "C Ön Lisans Okulu",
            "D Ön Lisans Okulu"
        ]
    ]
);
var_dump($okulListesi); // var_dump dizileri düzenli olarak tüm elemanlarını ekrana yazdırmak için kullanılır.
/*
"okullar" => [ //köşeli parantez açtık ki içerisinin dizi olduğunu belirttik.
        "ilkokullar" => [ //köşeli parantez açtık ki içerisinin dizi olduğunu belirttik.
            "A İlkokulu", //dizinin 1. değeri
            "B İlkokulu", //dizinin 2. değeri
            "C İlkokulu", //dizinin 3. değeri
            "D İlkokulu"  //dizinin 4. değeri
        ], //köşeli parantezi kapattık çünkü ilkokullar dizisinin burada bittiğini gösterdik.
        "liseler" => [ // aynı işlemler burada da geçerlidir.
            "A Lisesi",
            "B Lisesi",
            "C Lisesi",
            "D Lisesi"
        ]
    ],
*/
//ekrana yazmak
echo $okulListesi["okullar"]["ilkokullar"][0]; //Çıktı A İlkokulu
/*
burada sırayla dizi içerisine erişim sağladık. Önce $okulListesi["okullar"] dizisine eriştik daha sonra $okulListesi["okullar"] dizisinin elemanı olan ["ilkokullar"] dizisine eriştik ve daha sonra ["ilkokullar"] dizisinin [0] elemanına eriştik.
echo $okulListesi["okullar"]["ilkokullar"][2]; //Çıktı: C İlkokulu
echo $okulListesi["okullar"]["liseler"][3]; //Çıktı: D Lisesi
echo $okulListesi["universiteler"]["meslek_yuksek_okullari"][1]; //Çıktı: B Meslek Yüksek Okulu
echo $okulListesi["universiteler"]["on_lisans_okullari"][3]; //Çıktı: D Ön Lisans Okulu
*/
?>