Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kekunci dalam Susunan Menurun?

Bagaimana untuk Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kekunci dalam Susunan Menurun?

Barbara Streisand
Lepaskan: 2024-11-12 06:22:01
asal
780 orang telah melayarinya

How to Sort an Associative Array by Numeric Values and Keys in Descending Order?

Mengisih Tatasusunan Bersekutu mengikut Nilai dan Kekunci Numerik

Memandangkan tatasusunan bersekutu dengan kunci rentetan dan nilai angka, anda mahu mengisih tatasusunan mengikut nilai angka menurun dan kemudian mengikut abjad nama tag. Sebagai contoh, tatasusunan input:

$arrTags = [
    'mango' => 2, 
    'orange' => 4, 
    'apple' => 2,
    'banana' => 3
];
Salin selepas log masuk

hendaklah dikeluarkan sebagai:

orange (4)  
banana (3) 
apple (2) 
mango (2)
Salin selepas log masuk

Penyelesaian:

Satu pendekatan yang mungkin adalah menggunakan usort(). Walau bagaimanapun, anda memerlukan fungsi perbandingan tersuai yang mengisih mengikut nilai angka dahulu dan kemudian mengikut kekunci. Ini boleh dilakukan dengan mengisih dalam dua langkah: pertama, mengisih mengikut nilai angka menurun, dan kemudian mengisih mengikut nilai kunci menaik.

Untuk memudahkan kod, anda boleh menggunakan fungsi array_values() dan array_keys() untuk ekstrak nilai dan kunci ke dalam tatasusunan berasingan. Kemudian, gunakan array_multisort() untuk melakukan pelbagai jenis pada berbilang tatasusunan. Kod berikut akan menghasilkan output yang diingini:

array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kekunci dalam Susunan Menurun?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan