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 2B dizilerle çalışırken, hem ana düzeyde hem de iç içe diziler içinde ilişkisel diziler kullanarak daha yapılandırılmış veriler de oluşturabilirsiniz. Bu yaklaşım, sayılar yerine dize anahtarları kullanır; böylece verileriniz çok daha açıklayıcı ve anlaşılması daha kolay olur.

Anlamlı dize anahtarlarına sahip her öğenin bulunduğu 2B ilişkisel bir diziyi şöyle oluşturursun:

<?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 dizinleri kullanırken içte ilişkisel dizileri koruyarak yaklaşımları da 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 öğe için birden fazla ilişkili özelliği depolamanı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 ve sayısal konumları hatırlamaya kıyasla çok daha kolay sürdürülebilir hâle getirir.

challenge icon

Görev

Kolay

Bir girdi alacaksınız: JSON biçiminde bir ürünü envanterini temsil eden 2D ilişkisel dizi. Her ürünün anahtar olarak benzersiz bir ürün kimliği vardır ve değeri, ürünün "name" ve "price" bilgilerini içeren ilişkisel bir dizidir. Girdiyi okuyun, JSON dizesini 2D ilişkisel diziye dönüştürün, tüm ürünler üzerinde yineleyin ve her ürünün bilgilerini şu biçimde yazdırın: ID: [product_id] - Name: [name] - Price: $[price]

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

Girdi biçimi: Ürün envanterini temsil eden bir JSON nesnesi içeren tek 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, ID: [product_id] - Name: [name] - Price: $[price] biçiminde ayrı bir satıra yazdırılır.

Kendin dene

<?php
// JSON girdisini oku
$input = fgets(STDIN);

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

// TODO: Envanter üzerinde yineleme yapıp her ü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

Kendi başına pratik yap: Online PHP derleyicisi