v2.5.2
Giriş yap

PHP'de Diziler

Normal şartlarda bir değişkenin sakladığı tek bir değerdir. Eğer birden fazla değer saklamak isteseydik bunu diziler yardımıyla yapabilirdik.

Dizi oluşturmak

PHP'de dizi oluşturmak için array() fonksiyonu ya da [] yapısı kullanılır. Örnek bir dizi oluşturalım.

$yaslar = array(27, 27, 32);
$isimler = ["Tayfun", "Mehmet", "Gökhan"];

Her iki şekilde oluşturduğumuzda da geçerli olacaktır. array() tüm php sürümlerinde çalışırken [] muhtemelen 5 ve öncesinde çalışmayabilir ancak bir önemi yok çünkü bizde php'nin 5. versiyonunu kullanma taraftarı değiliz. Minimum 7. versiyonunu kullanmak performans için daha doğru bir tercih olur.

Peki oluşturduğumuz $isimler dizisini ekrana basmaya çalışırsak ne olur?

echo $isimler;

Burada alacağınız sonuç şöyle olacaktır;

Array

Evet gördüğünüz gibi dizi değeri depoladığı için böyle ekrana basamıyoruz. Ne yapacağız_

Dizi değerlerini ekrana basmak

Her dizi değerinin bir anatarı vardır. Ve unutmayın, dizi anahtarları (index - indis) 0 değerinden başlar. Yani yukarıdaki örneğimizde eğer ben Mehmet değerini ekrana basmak istersem 1. öğeyi ekrana basmam gerekiyor. Bunuda şöyle yapıyoruz;

echo $isimler[1]; // Çıktı: Mehmet

Bu mantıkta 0 bana Tayfun değerini, 1 bana Mehmet değerini ve 2 bana Gökhan değerini verecektir.

Anahtar-değer dizi oluşturmak

Yukarıdaki örneğimizde dizi tanımlarken biz sadece değerleri verdik, elbette böyle yapmak zorunda değiliz. Ayrıca özel olarak anahtarları belirterekte dizi oluşturmamız mümkün. Şöyle ki;

$user = [
    "name" => "Tayfun",
    "surname" => "Erbilen",
    "age" => 27,
    "sizce bunu ekrana nasıl basarım?"
];

Gördüğünüz gibi anahtar => değer şeklinde atama yaptım ve her bir anahtar-değer arasında virgül koydum.

Eğer anahtarı belirlediksek onun değerine bu anahtarları kullanarak ulaşabiliriz. Örneğin adımı ve soyadımı şöyle ekrana basabilirim;

echo $user['name'] . ' ' . $user['surname'];

Peki "sizce bunu ekrana nasıl basarım?" bunu nasıl ekrana basacağım? Yukarıda öğrendiğimiz gibi, eğer anahtar tanımı yoksa 0'dan başlayacağı için şöyle ekrana basabiliriz;

echo $user[0];

İç içe dizi oluşturmak

Ayrıca sıkça kullanacağımız şey ise, dizi içinde dizi depolamak olacak. Bir örnek vermek gerekirse;

$user = [
    "name" => "Tayfun",
    "surname" => "Erbilen",
    "age" => 27,
    "skills" => ["PHP", "CSS", "HTML"],
    "pets" => [
        "dogs" => [
            [
                "name" => "Monti",
                "gender" => "Dişi",
                "age": 2
            ]
        ],
        "cats" => [
            [
                "name" => "Paşa",
                "gender" => "Erkek",
                "age": 3
            ],
            [
                "name" => "Göbek",
                "gender" => "Dişi",
                "age" => 1.5,
            ],
            [
                "name" => "Şans",
                "gender" => "Dişi",
                "age" => 0.7
            ]
        ]
    ]
];

Karmaşık mı geldi? Hadi ama, o kadar karmaşık olamaz. Tek yaptığımız anahtar-değer kısmında değer kısmına yine bir dizi tanımlamak oldu. Gelin şimdi Şans ismini ekrana nasıl basarız ona bir bakalım.

echo $user['pets']['cats'][2]['name'];

Gördüğünüz gibi önce pets anahtarını seçtim, o da yine bir dizi depoluyor o dizi içinde cats anahtarını seçtim ve onun oluşturduğu dizide anahtar ismi olmadığı için 2. anahtarı yani 3. öğeyi seçerek onun içindeki name anahtarının değerini ekrana bastım. Bu şekilde istediğiniz kadar iç içe dizi oluşturup kullanabilirsiniz.

Sabit değişkenlerde dizi tanımı

Ayrıca sabit değişkende dizi değeri depolayabilirsiniz. Örneğin;

define('DIRS', ['.', '..', '/vendor']);

aynı mantıkta ekrana basabilirsiniz;

echo DIRS[2]; // Çıktı: /vendor

Tabi sabit değişken olduğu için başında $ olmadan kullanıyoruz :)

tayfunerbilen
1168 gün önce yazdı - 3745 kez görüntülendi.
Önceki PHP'de Sabit Değişkenler Sonraki Python / Python Versiyonunu Öğrenmek