Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kunci Mengikut Abjad?

Bagaimana Mengisih Tatasusunan Bersekutu mengikut Nilai Angka dan Kunci Mengikut Abjad?

Patricia Arquette
Lepaskan: 2024-11-11 07:48:03
asal
974 orang telah melayarinya

How to Sort an Associative Array by Numeric Value and Key Alphabetically?

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
];
Salin selepas log masuk

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)
Salin selepas log masuk

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);
Salin selepas log masuk

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!

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