Menu
Coddy logo textTech

2 Boyutlu İlişkisel Diziler

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 31 / 68.

Sayısal dizinler kullanarak 2D dizilerle çalışıyor olsanız da, hem ana seviyede hem de iç içe geçmiş dizilerde ilişkisel diziler kullanarak daha yapılandırılmış veriler oluşturabilirsiniz. Bu yaklaşım, sayılar yerine dize anahtarlar kullanır ve verilerinizi çok daha açıklayıcı ve anlaşılması daha kolay hale getirir.

Her bir öğenin anlamlı dize (string) anahtarlarına sahip olduğu 2 boyutlu bir ilişkisel diziyi (associative array) şu şekilde oluşturabilirsiniz:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ],
    "charlie" => [
        "name" => "Charlie Brown",
        "grade" => 95
    ]
];
?>

Ana dizi için sayısal indeksler kullanırken, içindeki dizileri ilişkisel (associative) tutarak yaklaşımları karıştırabilirsiniz:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

Bu yapı, kullanıcı profilleri, ürün katalogları veya her bir öğe için birden fazla ilgili özelliği saklamanız gereken herhangi bir senaryo gibi karmaşık verileri düzenlemek için inanılmaz derecede güçlüdür. Dize anahtarları, kodunuzu kendi kendini belgeleyen bir hale getirir ve sayısal konumları hatırlamaya kıyasla bakımı çok daha kolaylaştırır.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

challenge icon

Görev

Kolay

Bir girdi alacaksınız: JSON formatında bir ürün envanterini temsil eden 2 boyutlu bir ilişkisel dizi (associative array). Her ürünün anahtar olarak benzersiz bir ürün kimliği (product ID) vardır ve değer, ürünün "name" ve "price" bilgilerini içeren ilişkisel bir dizidir. Girdiyi okuyun, JSON dizesini 2 boyutlu bir ilişkisel diziye dönüştürün, tüm ürünler arasında gezinin ve her ürünün bilgisini şu formatta yazdırın: ID: [product_id] - Name: [name] - Price: $[price]

Her ürün ayrı bir satıra yazdırılmalıdır.

Girdi formatı: Ürün envanterini temsil eden bir JSON nesnesi içeren tek bir satır (örnek: {"P001":{"name":"Laptop","price":999.99},"P002":{"name":"Mouse","price":25.50},"P003":{"name":"Keyboard","price":75.00}})

Beklenen çıktı: Her ürünün ID: [product_id] - Name: [name] - Price: $[price] formatında ayrı bir satıra yazdırılması

Kopya kağıdı

Hem ana seviyede hem de iç içe dizilerde dize anahtarları kullanarak 2B ilişkilendirilebilir diziler oluşturabilirsiniz:

<?php
$students = [
    "alice" => [
        "name" => "Alice Johnson",
        "grade" => 92
    ],
    "bob" => [
        "name" => "Bob Smith", 
        "grade" => 87
    ]
];
?>

Yaklaşımları karıştırarak, ana dizi için sayısal indeksler ve içinde ilişkilendirilebilir diziler de kullanabilirsiniz:

<?php
$users = [
    ["username" => "john_doe", "email" => "john@example.com"],
    ["username" => "jane_smith", "email" => "jane@example.com"]
];
?>

Dize anahtarları, verilerinizi sayısal konumlara göre kendi kendini belgeleyen ve bakımı daha kolay hale getirir.

Kendin dene

<?php
// JSON girişini oku
$input = fgets(STDIN);

// JSON'u ilişkisel diziye dönüştür
$inventory = (array)json_decode($input, true);

// YAPILACAK: Envanterde gezinmek ve her bir ürünü yazdırmak için kodunuzu aşağıya yazın


?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler