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
-
Python Temelleri Genel Tekrar
14:39:24 - 13/12/2025 -
Python Performans İpuçları
14:38:59 - 13/12/2025 -
Python’da Temiz Kod Yazma
14:38:28 - 13/12/2025 -
Python Mini Proje: Sayı Tahmin Oyunu
14:37:58 - 13/12/2025 -
Python Mini Proje: Hesap Makinesi
14:37:31 - 13/12/2025