Menu
CoddyTech

Urutkan assoc array berdasarkan nilai

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

Saat bekerja dengan array asosiatif, kamu sering perlu mengurutkannya berdasarkan nilainya sambil mempertahankan hubungan antara kunci dan nilai. PHP menyediakan dua fungsi khusus untuk tujuan ini: asort() untuk urutan menaik dan arsort() untuk urutan menurun.

Berikut cara kerja asort() untuk mengurutkan berdasarkan nilai secara menaik:

<?php
$students = [
    "Alice" => 85,
    "Bob" => 92,
    "Charlie" => 78,
    "Diana" => 96
];

asort($students);
print_r($students);
// output: Array ( [Charlie] => 78 [Alice] => 85 [Bob] => 92 [Diana] => 96 )
?>

Perhatikan bahwa nilai kini tersusun dari yang terendah hingga tertinggi, tetapi nama setiap siswa tetap dipasangkan dengan benar dengan nilainya. Inilah keunggulan utama asort() dibandingkan sort() biasa. Fungsi ini mempertahankan keterkaitan antara key dan nilai.

Untuk urutan menurun, arsort() bekerja dengan cara serupa, tetapi mengurutkan nilai dari tertinggi ke terendah:

<?php
arsort($students);
print_r($students);
// Output: Array ( [Diana] => 96 [Bob] => 92 [Alice] => 85 [Charlie] => 78 )
?>

Kedua fungsi langsung mengubah array asli, sama seperti fungsi yang setara pada array berindeks. Ini membuatnya cocok untuk mengatur data seperti nilai siswa, harga produk, atau situasi apa pun saat kamu perlu mengurutkan berdasarkan nilai sambil mempertahankan pasangan kunci-nilai.

challenge icon

Tantangan

Mudah

Kamu akan menerima satu input: sebuah array asosiatif berisi nama karyawan dan gaji mereka dalam format JSON. Baca input, ubah string JSON menjadi array, gunakan arsort() untuk mengurutkan karyawan berdasarkan gaji secara menurun (tertinggi ke terendah), lalu cetak array yang sudah diurutkan menggunakan print_r().

Format input: Satu baris berisi object JSON dengan nama karyawan sebagai key dan gaji sebagai nilai (contoh: {"John":45000,"Sarah":52000,"Mike":38000,"Lisa":61000})

Output yang diharapkan: Array asosiatif yang diurutkan secara menurun berdasarkan nilai gaji, ditampilkan menggunakan print_r()

Coba sendiri

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

// Ubah JSON menjadi array asosiatif
$employees = (array)json_decode($input, true);

// TODO: Tulis kodemu di bawah ini untuk mengurutkan array berdasarkan gaji dari yang tertinggi ke terendah


// Tampilkan array yang sudah diurutkan sebagai output
print_r($employees);
?>
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