Menu
CoddyTech

Menggabungkan array asosiatif

Termasuk bagian Logika dan Alur dalam perjalanan PHP di Coddy. Pelajaran 15 dari 68.

Meskipun array_merge() bekerja dengan lancar pada array berindeks, perilakunya berubah secara signifikan saat digunakan dengan array asosiatif. Perbedaan utamanya terletak pada cara fungsi ini menangani key string duplikat di antara array yang digabungkan.

Saat menggabungkan array asosiatif, jika kedua array memiliki kunci string yang sama, nilai dari array yang disebut belakangan akan menimpa nilai dari array yang disebut lebih dahulu:

<?php
$defaults = ["theme" => "light", "language" => "english", "notifications" => true];
$userSettings = ["theme" => "dark", "notifications" => false];
$finalConfig = array_merge($defaults, $userSettings);
print_r($finalConfig);
// Output: Array ( [theme] => dark [language] => english [notifications] => false )
?>

Perhatikan bahwa "theme" berubah dari "light" menjadi "dark" dan "notifications" berubah dari true menjadi false, sedangkan "language" tetap "english" karena tidak ditimpa. Perilaku ini membuat array_merge() sangat cocok untuk sistem konfigurasi yang nilai defaultnya ingin kamu timpa dengan preferensi pengguna.

Urutan argumen penting: nilai dari array yang dicantumkan belakangan dalam pemanggilan fungsi akan lebih diutamakan daripada nilai yang dicantumkan lebih awal. Perilaku penimpaan ini hanya berlaku untuk kunci string; kunci numerik selalu diindeks ulang secara berurutan, sama seperti pada array berindeks.

challenge icon

Tantangan

Mudah

Kamu akan menerima dua input: array konfigurasi default dan array preferensi pengguna, keduanya dalam format JSON. Baca kedua input, ubah setiap string JSON menjadi array asosiatif, gunakan array_merge() untuk menggabungkannya (dengan preferensi pengguna menimpa nilai default), lalu cetak konfigurasi gabungan menggunakan print_r().

Format input: Dua baris, setiap baris berisi object JSON yang merepresentasikan array asosiatif (contoh: {"theme":"light","language":"english"})

Output yang diharapkan: Array konfigurasi gabungan, dengan preferensi pengguna menimpa nilai default, ditampilkan menggunakan print_r()

Coba sendiri

<?php
// Baca kedua input JSON
$defaultConfig = fgets(STDIN);
$userPreferences = fgets(STDIN);

// Ubah string JSON menjadi array asosiatif
$defaultArray = (array)json_decode($defaultConfig, true);
$userArray = (array)json_decode($userPreferences, true);

// TODO: Tulis kodemu di bawah ini untuk merge array tersebut


// Tampilkan konfigurasi yang sudah di-merge
print_r($mergedConfig);
?>
quiz iconUji dirimu

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

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler PHP online