Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Isih Tatasusunan Bersekutu mengikut Nilai Angka dan Kemudian mengikut Kekunci dalam PHP?

Bagaimanakah Saya Boleh Isih Tatasusunan Bersekutu mengikut Nilai Angka dan Kemudian mengikut Kekunci dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-11-10 03:35:021011semak imbas

How Can I Sort an Associative Array by Numeric Values and Then by Keys in PHP?

Isih Tatasusunan Bersekutu mengikut Nilai Angka dan Kemudian mengikut Kekunci

Dalam PHP, anda mungkin menghadapi senario di mana anda perlu mengisih tatasusunan rata dan bersekutu berdasarkan nilai angka dan kemudian dengan kunci. Ini boleh menjadi tugas yang mencabar, terutamanya jika anda tidak biasa dengan teknik yang sesuai.

Satu pendekatan ialah menggunakan usort() untuk membandingkan nilai dan kunci secara serentak. Walau bagaimanapun, ini boleh menjadi penyelesaian yang membosankan dan kompleks.

Penyelesaian yang lebih mudah dan cekap ialah menggunakan fungsi array_values() dan array_keys() bersama-sama dengan array_multisort(). Teknik ini membolehkan anda mencapai pengisihan yang diingini dalam satu baris kod:

array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);

Kod ini mengasingkan nilai berangka dan kunci ke dalam tatasusunan berasingan, mengisih nilai tersebut secara menurun dan menaik, masing-masing, dan kemudian menggabungkan hasilnya kembali ke dalam tatasusunan $arrTags asal.

$arrTags yang terhasil akan diisih mengikut tertib menurun mengikut nilai angka dan kemudian dengan tertib menaik mengikut kekunci, menyediakan format yang diingini:

orange (4)  
banana (3) 
apple (2) 
mango (2)

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Tatasusunan Bersekutu mengikut Nilai Angka dan Kemudian mengikut Kekunci dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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