Menu
Coddy logo textTech

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.

challenge icon

Görev

Kolay

Bir 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:

  1. key1 ile ilişkili değere erişin ve bu değeri yazdırın
  2. key2 ile ilişkili değeri $info adlı bir değişkende saklayın
  3. $info iç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 Fitzgerald

Girdiler {"name": "Laptop", "brand": "TechCo", "price": 999}, brand ve price ise çıktı şu şekilde olmalıdır:

TechCo
999

Kendin 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

?>
quiz iconKendini test et

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

Kendi başına pratik yap: Online PHP derleyicisi