Anahtarla Değerlere Erişme
Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası. Ders 42 / 71.
Artık ilişkisel dizilerin ne olduğunu anladığına göre, onlardan değerleri nasıl alacağımızı öğrenelim. İndeksli diziler sayısal konumları kullandığı gibi, ilişkisel diziler de köşeli parantezler içinde anahtarlar kullanır.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
echo $person["name"]; // Alice
echo $person["age"]; // 25
?>Sözdizimi $array["key"] şeklindedir: anahtarı köşeli parantezlerin içine bir dize olarak yerleştirin; PHP, ilgili değeri döndürür. Bu, adın 0. indekste olduğunu hatırlamaktan çok daha okunabilirdir.
Alınan değeri daha sonra kullanmak üzere bir değişkende de saklayabilirsiniz:
<?php
$product = [
"title" => "Laptop",
"price" => 999
];
$itemName = $product["title"];
echo $itemName; // Laptop
?>Anahtar, büyük/küçük harf kullanımı da dâhil olmak üzere tamamen eşleşmelidir. PHP bunları farklı anahtarlar olarak değerlendirdiğinden, "name" yerine "Name" kullanmak hataya neden olur.
Bazen veriler bir PHP dizi değişmezi yerine JSON dizesi olarak gelir. JSON (JavaScript Object Notation), yapılandırılmış verileri temsil etmek için kullanılan yaygın bir metin biçimidir. Örneğin:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';PHP'nin yerleşik json_decode() işlevi, bir JSON dizesini PHP değerine dönüştürür. Bir ilişkisel dizi elde etmek için ikinci bağımsız değişken olarak true değerini iletin:
<?php
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';
$book = json_decode($json, true);
echo $book["title"]; // Dune
echo $book["author"]; // Frank Herbert
echo $book["year"]; // 1965
?>json_decode($json, true) çağrıldıktan sonra sonuç, normal bir ilişkisel dizidir ve değerlerine diğer tüm ilişkisel dizilerde olduğu gibi erişebilirsiniz: $array["key"] kullanarak.
Görev
KolayBir kitabın bilgilerini temsil eden bir JSON nesnesi içeren bir girdi satırı okuyun (ör. {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Ardından iki girdi daha okuyun:
- Erişilecek ilk anahtarı temsil eden bir dize:
key1 - Erişilecek ikinci anahtarı temsil eden bir dize:
key2
JSON dizesini ilişkisel diziye dönüştürmek için, ikinci bağımsız değişken olarak true ile yerleşik json_decode() işlevini kullanın:
$array = json_decode($jsonString, true);
İkinci bağımsız değişken olan true, PHP'ye bir nesne yerine ilişkisel dizi döndürmesini söyler. Kod çözüldükten sonra, herhangi bir ilişkisel dizide olduğu gibi değerlere anahtar aracılığıyla erişebilirsiniz; ör. $array["title"].
JSON girdisinden bir ilişkisel dizi oluşturun, ardından:
key1ile ilişkili değere erişin ve bu değeri yazdırınkey2ile ilişkili değeri$infoadlı bir değişkende saklayın$infoiçinde saklanan değeri yazdırın
Her sonucu ayrı bir satıra yazdırın.
Örnek:
Girdiler {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title ve author ise çıktı şu şekilde olmalıdır:
The Great Gatsby
F. Scott FitzgeraldGirdiler {"name": "Laptop", "brand": "TechCo", "price": 999}, brand ve price ise çıktı şu şekilde olmalıdır:
TechCo
999Kendin dene
<?php
// JSON girişini oku
$jsonInput = trim(fgets(STDIN));
// İki anahtarı oku
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
// TODO: Kodunu aşağıya yaz
// 1. json_decode kullanarak JSON girişinden bir ilişkisel dizi oluştur
// 2. $key1 ile ilişkili değere eriş ve yazdır
// 3. $key2 ile ilişkili değeri $info adında bir değişkende sakla
// 4. $info içinde saklanan değeri yazdır
?>Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Karşılaştırma ve Mantıksal Operatörler
Karşılaştırma OperatörleriEşitlik ve KimlikMantıksal Operatörler 1. BölümMantıksal Operatörler 2. BölümTekrar - Basit Mantık7Diziler 2. Bölüm - İlişkisel Diziler
İlişkisel Dizilere GirişAnahtarla Değerlere ErişmeAnahtarla Değerleri DeğiştirmeYeni Anahtar-Değer Çiftleri EklemeAnahtarın Var Olup Olmadığını Kontrol EtmeTekrar - Anahtar-Değer Veri Deposu2Değişkenler ve Veri Türleri
SayılarDizeler ve Tırnak İşaretleriBoolean DeğerleriAdlandırma KurallarıTekrar - Değişken BaşlatmaBoş DeğişkenlerDize BirleştirmeKullanıcı Girdisi AlmaFarklı Türlere Dönüştürme5Koşullu Mantık
If İfadesiIf - ElseÜçlü OperatörNull Coalescing OperatörüSwitch İfadesiTekrar - Karar Verme3Temel Operatörler
Aritmetik OperatörlerMod Alma OperatörüÜs Alma OperatörüBirleşik AtamaArtırma/AzaltmaOperatör ÖnceliğiTekrar - Basit HesaplamalarDize OperatörleriKendi başına pratik yap: Online PHP derleyicisi