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.
Tantangan
MudahKamu 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);
?>Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Fungsi Lanjutan
Fungsi AnonimClosure dan 'use'Fungsi PanahFungsi CallbackMenggunakan 'call_user_func'Fungsi VariabelMengirim dengan ReferensiFungsi RekursifUlasan: Ragam Fungsi4Array Multidimensi
Membuat array 2DMengakses Elemen array 2DMengubah Elemen array 2DMelakukan Perulangan dengan loop Bersarangarray Asosiatif 2DRekap: Latihan Kisi Sederhana2Manipulasi array Lanjutan
Menambahkan dengan 'array_push'Menghapus dengan 'array_pop'Menambahkan dengan 'array_unshift'Menghapus dengan 'array_shift'Menggabungkan array berindeksMenggabungkan array asosiatifMengambil bagian dengan 'array_slice'Nilai dengan 'in_array'Kunci dengan 'array_search'Rekap: Latihan playlist3Mengurutkan array
Urutkan array berindeks secara menaikUrutkan array berindeks secara menurunUrutkan assoc array berdasarkan nilaiUrutkan assoc array berdasarkan kunciPengurutan urutan alamiPengurutan khusus dengan 'usort'Rangkuman: Pengurutan papan peringkatLatihan sendiri: Compiler PHP online