Accessing Values by Key
Coddy'nin PHP Journey'sinin Temeller bölümünün bir parçası — ders 42 / 71.
İlişkili dizilerin (associative arrays) ne olduğunu anladığınıza göre, şimdi onlardan nasıl değer alacağımızı öğrenelim. İndeksli dizilerin sayısal konumları kullanması gibi, ilişkili diziler de köşeli parantez içinde anahtarları (keys) 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 ve PHP ilişkili değeri döndürür. Bu, ismin 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 duyarlılığı dahil olmak üzere tam olarak eşleşmelidir. "name" yerine "Name" kullanmak, PHP bunları farklı anahtarlar olarak değerlendirdiği için bir hataya neden olur.
Bazen veriler bir PHP dizi sabiti yerine bir JSON dizesi olarak gelir. JSON (JavaScript Object Notation), yapılandırılmış verileri temsil etmek için yaygın bir metin formatıdır. Örneğin:
$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';PHP'nin yerleşik json_decode() fonksiyonu, bir JSON dizesini bir PHP değerine dönüştürür. İlişkisel bir dizi elde etmek için ikinci argüman olarak true değerini geçirin:
<?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) fonksiyonunu çağırdıktan sonra, sonuç normal bir ilişkisel dizidir ve değerlerine tıpkı diğer ilişkisel dizilerde olduğu gibi $array["key"] kullanarak erişebilirsiniz.
Görev
KolayBir kitabın bilgilerini temsil eden bir JSON nesnesi içeren bir girdi satırı okuyun (örneğin, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).
Ardından iki girdi daha okuyun:
- Erişilecek ilk anahtarı temsil eden bir
key1dizesi - Erişilecek ikinci anahtarı temsil eden bir
key2dizesi
JSON dizesini bir ilişkisel diziye (associative array) dönüştürmek için, ikinci argümanı true olan yerleşik json_decode() fonksiyonunu kullanın:
$array = json_decode($jsonString, true);
İkinci argüman olan true, PHP'ye bir nesne yerine ilişkisel bir dizi döndürmesini söyler. Kod çözüldükten sonra, değerlere herhangi bir ilişkisel dizide olduğu gibi anahtar yoluyla erişebilirsiniz, örneğin $array["title"].
JSON girdisinden bir ilişkisel dizi oluşturun, ardından:
key1ile ilişkili değeri bulun ve 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ı şöyle olmalıdır:
The Great Gatsby
F. Scott FitzgeraldGirdiler {"name": "Laptop", "brand": "TechCo", "price": 999}, brand ve price ise, çıktı şöyle 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: Kodunuzu aşağıya yazın
// 1. json_decode kullanarak JSON girişinden bir ilişkisel dizi oluşturun
// 2. $key1 ile ilişkili değere erişin ve yazdırın
// 3. $key2 ile ilişkili değeri $info adlı bir değişkende saklayın
// 4. $info içinde saklanan değeri yazdırın
?>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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic7Arrays Part 2 - Associative
Intro to Associative ArraysAccessing Values by KeyModifying Values by KeyAdding New Key-Value PairsCheck if Key ExistsRecap - Key-Value Data Store2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators