Menu
CoddyTech

Mengakses Nilai Berdasarkan Kunci

Termasuk bagian Dasar-Dasar dalam perjalanan PHP di Coddy. Pelajaran 42 dari 71.

Sekarang setelah kamu memahami apa itu array asosiatif, mari pelajari cara mengambil nilai darinya. Sama seperti array berindeks yang menggunakan posisi numerik, array asosiatif menggunakan kunci di dalam tanda kurung siku.

<?php
$person = [
    "name" => "Alice",
    "age" => 25,
    "city" => "Paris"
];

echo $person["name"]; // Alice
echo $person["age"];  // 25
?>

Sintaksnya adalah $array["key"]: letakkan kunci sebagai string di dalam tanda kurung siku, dan PHP mengembalikan nilai terkait. Ini jauh lebih mudah dibaca daripada mengingat bahwa nama berada pada indeks 0.

Kamu juga bisa menyimpan nilai yang diperoleh dalam variabel untuk digunakan nanti:

<?php
$product = [
    "title" => "Laptop",
    "price" => 999
];

$itemName = $product["title"];
echo $itemName; // Laptop
?>

Kunci harus sama persis, termasuk kapitalisasi. Menggunakan "Name" alih-alih "name" akan menyebabkan error karena PHP memperlakukannya sebagai kunci yang berbeda.

Terkadang data tiba sebagai string JSON, bukan sebagai literal array PHP. JSON (JavaScript Object Notation) adalah format teks umum untuk merepresentasikan data terstruktur. Contohnya:

$json = '{"title": "Dune", "author": "Frank Herbert", "year": 1965}';

Fungsi bawaan PHP json_decode() mengonversi string JSON menjadi nilai PHP. Untuk mendapatkan array asosiatif, berikan true sebagai argumen kedua:

<?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
?>

Setelah memanggil json_decode($json, true), hasilnya adalah array asosiatif biasa dan kamu dapat mengakses nilainya dengan cara yang sama seperti array asosiatif lainnya: menggunakan $array["key"].

challenge icon

Tantangan

Mudah

Baca satu baris input yang berisi object JSON yang merepresentasikan informasi sebuah buku (misalnya, {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}).

Lalu baca dua input lagi:

  • string key1 yang merepresentasikan key pertama yang akan diakses
  • string key2 yang merepresentasikan key kedua yang akan diakses

Untuk mengonversi string JSON menjadi associative array, gunakan fungsi bawaan json_decode() dengan true sebagai argumen kedua:
$array = json_decode($jsonString, true);
Argumen kedua true memberi tahu PHP untuk mengembalikan associative array, bukan object. Setelah didekode, kamu dapat mengakses nilai berdasarkan key seperti pada associative array lainnya, misalnya $array["title"].

Buat associative array dari input JSON, lalu:

  1. Akses dan cetak nilai yang terkait dengan key1
  2. Simpan nilai yang terkait dengan key2 dalam variabel bernama $info
  3. Cetak nilai yang disimpan dalam $info

Cetak setiap hasil pada baris terpisah.

Contoh:

Jika inputnya adalah {"title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925}, title, dan author, outputnya seharusnya:

The Great Gatsby
F. Scott Fitzgerald

Jika inputnya adalah {"name": "Laptop", "brand": "TechCo", "price": 999}, brand, dan price, outputnya seharusnya:

TechCo
999

Coba sendiri

<?php
// Baca input JSON
$jsonInput = trim(fgets(STDIN));

// Baca kedua key
$key1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));

// TODO: Tulis kodemu di bawah ini
// 1. Buat array asosiatif dari input JSON menggunakan json_decode
// 2. Akses dan cetak nilai yang terkait dengan $key1
// 3. Simpan nilai yang terkait dengan $key2 dalam variabel bernama $info
// 4. Cetak nilai yang tersimpan dalam $info

?>
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler PHP online