PHP Associative Array (Sözlük)

Anahtar–değer yapısıyla veri tutan associative array kullanımını öğrenin.

PHP'de "ilişkisel dizi" (associative array), elemanlara sayısal indeksler (0, 1, 2...) yerine, **anlamlı metin anahtarlar (string keys)** atayarak erişebildiğimiz bir dizi türüdür. Geleneksel (indeksli) dizilerin aksine, ilişkisel dizilerde her bir değer, bir "anahtar" (key) ile ilişkilendirilir. Bu, dizideki verilere daha okunabilir ve anlaşılır bir şekilde ulaşmamızı sağlar. Bir ilişkisel diziyi, bir sözlüğe veya telefon rehberine benzetebilirsiniz: * Sözlükte kelimeleri (anahtar) kullanarak anlamlarını (değer) bulursunuz. * Telefon rehberinde isimleri (anahtar) kullanarak telefon numaralarını (değer) bulursunuz. --- ### Temel Özellikler ve Neden Kullanılır? 1. **Anlamlı Anahtarlar:** Sayılar yerine `isim`, `email`, `yaş`, `ürün_id` gibi açıklayıcı metinler kullanırsınız. Bu, kodunuzu çok daha okunabilir ve bakımı kolay hale getirir. 2. **Veri Yapısı:** Gerçek dünya nesnelerinin özelliklerini temsil etmek için idealdir. Örneğin, bir kullanıcının bilgilerini tek bir dizi içinde tutmak. 3. **Esneklik:** Elemanların sıralaması genellikle önemli değildir; önemli olan anahtar-değer eşleşmesidir. --- ### İlişkisel Dizi Nasıl Oluşturulur? İlişkisel dizileri oluşturmanın iki temel yolu vardır: **1. `array()` Yapısı ile (Eski Yöntem):** ```php <?php $kullanici = array( "isim" => "Ali Yılmaz", "yas" => 30, "sehir" => "Ankara", "meslek" => "Yazılımcı" ); echo $kullanici["isim"]; // Çıktı: Ali Yılmaz echo $kullanici["yas"]; // Çıktı: 30 ?> ``` **2. Kısa Dizi Sözdizimi (`[]`) ile (Modern ve Önerilen Yöntem):** ```php <?php $urun = [ "id" => 101, "ad" => "Laptop", "fiyat" => 15000.00, "stok" => 50 ]; echo $urun["ad"]; // Çıktı: Laptop echo $urun["fiyat"]; // Çıktı: 15000 ?> ``` --- ### Elemanlara Erişim ve Kullanım Elemanlara erişmek için anahtar adını köşeli parantez içinde kullanırız: ```php <?php $kullanici = [ "isim" => "Ayşe Demir", "yas" => 25 ]; echo "Kullanıcı Adı: " . $kullanici["isim"] . "\n"; // Çıktı: Kullanıcı Adı: Ayşe Demir echo "Kullanıcı Yaşı: " . $kullanici["yas"] . "\n"; // Çıktı: Kullanıcı Yaşı: 25 ?> ``` --- ### Eleman Ekleme veya Güncelleme Yeni bir anahtar-değer çifti eklemek veya mevcut bir anahtarın değerini güncellemek için de aynı sözdizimi kullanılır: ```php <?php $kullanici = [ "isim" => "Mehmet Can", "yas" => 40 ]; // Yeni eleman ekleme $kullanici["email"] = "mehmet.can@example.com"; // Mevcut elemanı güncelleme $kullanici["yas"] = 41; print_r($kullanici); /* Çıktı: Array ( [isim] => Mehmet Can [yas] => 41 [email] => mehmet.can@example.com ) */ ?> ``` --- ### Eleman Silme Bir elemanı diziden kaldırmak için `unset()` fonksiyonunu kullanırız: ```php <?php $araba = [ "marka" => "BMW", "model" => "X5", "yil" => 2020 ]; echo "Silinmeden Önce:\n"; print_r($araba); unset($araba["yil"]); // 'yil' anahtarına sahip elemanı sil echo "\nSilindikten Sonra:\n"; print_r($araba); /* Çıktı: Silinmeden Önce: Array ( [marka] => BMW [model] => X5 [yil] => 2020 ) Silindikten Sonra: Array ( [marka] => BMW [model] => X5 ) */ ?> ``` --- ### İlişkisel Diziyi Döngüye Alma (Iterating) İlişkisel dizinin tüm elemanlarını gezmek için en yaygın yol `foreach` döngüsüdür: **Sadece değerleri almak için:** ```php <?php $meyveler = [ "elma" => "kırmızı", "muz" => "sarı", "kiraz" => "kırmızı" ]; foreach ($meyveler as $renk) { echo "Meyve Rengi: " . $renk . "\n"; } /* Çıktı: Meyve Rengi: kırmızı Meyve Rengi: sarı Meyve Rengi: kırmızı */ ?> ``` **Hem anahtarları hem de değerleri almak için (en yaygın kullanım):** ```php <?php $kitap = [ "baslik" => "Sefiller", "yazar" => "Victor Hugo", "yil" => 1862, "sayfa" => 1488 ]; foreach ($kitap as $anahtar => $deger) { echo ucfirst($anahtar) . ": " . $deger . "\n"; // ucfirst ilk harfi büyütür } /* Çıktı: Baslik: Sefiller Yazar: Victor Hugo Yil: 1862 Sayfa: 1488 */ ?> ``` --- ### Özetle PHP'deki ilişkisel diziler, verileri anlamlı anahtarlarla düzenlemek ve erişmek için güçlü ve esnek bir yoldur. Özellikle yapılandırılmış verilerle (örneğin, bir veritabanından gelen satırlar, API yanıtları veya konfigürasyon ayarları) çalışırken kodun okunabilirliğini ve yönetilebilirliğini büyük ölçüde artırırlar.
Son Paylaşımlar
Kategoriler