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.
Görev
KolayBir 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
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu SıralamaKendi başına pratik yap: Online PHP derleyicisi