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 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 key sebagai string di dalam tanda kurung siku, lalu PHP mengembalikan nilai yang terkait. Ini jauh lebih mudah dibaca daripada mengingat bahwa namanya ada di indeks 0.

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

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

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

Key harus sama persis, termasuk penggunaan huruf kapital. Menggunakan "Name" alih-alih "name" merujuk pada key yang berbeda; PHP mengeluarkan peringatan "Undefined array key" dan ekspresinya bernilai null (program tidak mengalami crash).

Terkadang data tiba sebagai string JSON, bukan 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 persis seperti array asosiatif lainnya: menggunakan $array["key"].

challenge icon

Tantangan

Mudah

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

Lalu baca dua input lagi:

  • Sebuah string key1 yang mewakili kunci pertama yang akan diakses
  • Sebuah string key2 yang mewakili kunci kedua yang akan diakses

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

Buat array asosiatif 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 kunci
$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