Isih Tatasusunan mengikut Nilai dan Kekunci Angka
Dalam pengaturcaraan, situasi timbul di mana kita perlu mengisih tatasusunan bersekutu mengikut kriteria tertentu. Satu senario sedemikian ialah mengisih tatasusunan mengikut nilai angka dan kemudian mengikut kekunci.
Andaikan kita mempunyai tatasusunan yang mengandungi kunci rentetan dan nilai angka yang mewakili kejadian teg:
$arrTags = [ 'mango' => 2, 'orange' => 4, 'apple' => 2, 'banana' => 3 ];
Matlamat kami adalah untuk memaparkan teg dalam senarai dengan kejadian tertinggi dahulu, dan dalam kes kejadian yang sama, isikan nama teg mengikut abjad. Ini akan menghasilkan:
orange (4) banana (3) apple (2) mango (2)
Walaupun fungsi arsort() pada mulanya boleh mengisih nilai, ia akan gagal mengekalkan susunan abjad kekunci apabila berbilang nilai adalah sama.
Seperti yang dicadangkan oleh Scott Saunders, kita boleh menggunakan fungsi array_keys() dan array_values() untuk mengatasi had ini:
array_multisort(array_values($arrTags), SORT_DESC, array_keys($arrTags), SORT_ASC, $arrTags);
Gabungan fungsi ini membolehkan kami memanipulasi terus kekunci dan nilai tatasusunan, akhirnya mencapai pengisihan yang diingini tingkah laku. Dengan mengisih nilai dalam tertib menurun dan kemudian mengisih kekunci dalam tertib menaik, kami memperoleh output yang diingini.
Atas ialah kandungan terperinci Bagaimana Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kunci Mengikut Abjad?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!