Rumah > pembangunan bahagian belakang > tutorial php > Penamat pengisihan tatasusunan berbilang dimensi PHP: selesaikan sepenuhnya masalah pengisihan

Penamat pengisihan tatasusunan berbilang dimensi PHP: selesaikan sepenuhnya masalah pengisihan

王林
Lepaskan: 2024-04-30 10:12:01
asal
510 orang telah melayarinya

Artifak PHP untuk pengisihan tatasusunan berbilang dimensi: fungsi multisort_recursive(), yang boleh mengisih secara rekursif mengikut mana-mana kunci Sintaksnya ialah: multisort_recursive(&$array, $sort_order1, ..., $sort_orderN, $options). Pilihan pengisihan termasuk: menaik (SORT_ASC), menurun (SORT_DESC), semula jadi (SORT_REGULAR), angka (SORT_NUMERIC) dan rentetan (SORT_STRING).

Penamat pengisihan tatasusunan berbilang dimensi PHP: selesaikan sepenuhnya masalah pengisihan

Penamat pengisihan tatasusunan berbilang dimensi PHP: menyelesaikan sepenuhnya masalah pengisihan

Untuk pembangun PHP yang mempunyai keperluan pengisihan tatasusunan berbilang dimensi, array_multisort() biasanya merupakan pilihan pertama yang terlintas di fikiran. Walau bagaimanapun, fungsi ini tidak mencukupi untuk pengisihan tatasusunan berbilang dimensi yang kompleks dan tidak dapat memenuhi keperluan pembangunan sebenar. Hari ini, kami akan memperkenalkan alternatif yang lebih berkuasa: fungsi multisort_recursive(). multisort_recursive() 函数。

multisort_recursive() 函数

multisort_recursive() 函数可以高效地对多维数组进行递归排序,它能够按任意数量的排序键对数组中的元素排序。

其语法如下:

bool multisort_recursive(array &$array, string $sort_order1, ..., string $sort_orderN, int $options = SORT_REGULAR)
Salin selepas log masuk

其中:

  • $array:要排序的多维数组(引用传递)
  • $sort_order1, ..., $sort_orderN:指定排序条件的字符串数组,每个字符串包含以下排序选项之一:

    • SORT_ASC:升序排列
    • SORT_DESC:降序排列
    • SORT_REGULAR:自然排序(按元素的值顺序排列)
    • SORT_NUMERIC:按照数字值排序
    • SORT_STRING:按照字符串值排序
  • $options:可选项,指定额外的排序选项,例如:

    • SORT_LOCALE_STRING:按语言环境敏感的字符串排序

实战案例

考虑以下多维数组:

$array = [
    ['name' => 'John', 'age' => 30],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Tom', 'age' => 28],
    ['name' => 'Mary', 'age' => 22],
];
Salin selepas log masuk

我们希望按年龄升序,然后再按姓名升序对数组进行排序。我们可以使用 multisort_recursive() 函数轻松实现这一目标:

multisort_recursive($array, [SORT_ASC, SORT_ASC], [SORT_NUMERIC, SORT_STRING]);
Salin selepas log masuk

排序后的结果为:

$array = [
    ['name' => 'Mary', 'age' => 22],
    ['name' => 'Jane', 'age' => 25],
    ['name' => 'Tom', 'age' => 28],
    ['name' => 'John', 'age' => 30],
];
Salin selepas log masuk

结语

multisort_recursive() 函数为 PHP 开发者提供了一个强大的工具,可以轻松应对复杂的多维数组排序任务。它比 array_multisort()

🎜multisort_recursive() Fungsi 🎜🎜🎜multisort_recursive() Fungsi ini boleh mengisih tatasusunan berbilang dimensi dengan cekap secara rekursif kekunci isihan. 🎜🎜Sintaksnya adalah seperti berikut: 🎜rrreee🎜Di mana: 🎜
  • $array: tatasusunan berbilang dimensi untuk diisih (dilalui dengan rujukan)
  • 🎜$sort_order1 , ..., $sort_orderN: Tatasusunan rentetan yang menyatakan syarat isihan, setiap rentetan mengandungi salah satu daripada pilihan isihan berikut: 🎜
    • SORT_ASC kod>: Isih dalam tertib menaik<li><kod>SORT_DESC</kod></li>: Isih dalam tertib menurun
    • SORT_REGULAR: Isih semula jadi (susun mengikut tertib nilai elemen)
    • SORT_NUMERIC: Isih mengikut nilai angka
    • SORT_STRING: Isih mengikut nilai rentetan
  • 🎜 $options: Pilihan, nyatakan pilihan pengisihan tambahan, contohnya: 🎜
    • SORT_LOCALE_STRING: Isih mengikut rentetan sensitif setempat
🎜🎜Kes Praktikal🎜🎜🎜Pertimbangkan tatasusunan berbilang dimensi berikut: 🎜rrreee🎜Kami mahu mengisih tatasusunan dalam tertib menaik mengikut umur dan kemudian dalam tertib menaik mengikut nama. Kita boleh mencapainya dengan mudah menggunakan fungsi multisort_recursive(): 🎜rrreee🎜Hasil yang disusun ialah: 🎜rrreee🎜🎜Conclusion🎜🎜🎜multisort_recursive() fungsi PHP The developers telah menyediakan alat berkuasa yang boleh mengendalikan tugas pengisihan tatasusunan berbilang dimensi yang kompleks dengan mudah. Ia lebih fleksibel dan berkuasa daripada array_multisort(), menjadikannya lebih mudah untuk menulis kod pengisihan. 🎜

Atas ialah kandungan terperinci Penamat pengisihan tatasusunan berbilang dimensi PHP: selesaikan sepenuhnya masalah pengisihan. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan