Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengisihan Array Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Isih

Pengisihan Array Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Isih

WBOY
WBOYasal
2024-04-29 16:42:01814semak imbas

PHP menyediakan pelbagai cara untuk mengisih tatasusunan berbilang dimensi: mengisih mengikut satu kekunci menggunakan fungsi sort() dan assor(), dan mengisih mengikut nilai menaik dan menurun masing-masing. Tulis fungsi pengisihan tersuai untuk mengisih mengikut mana-mana kunci dan menyokong peraturan yang kompleks. Gunakan fungsi array_multisort() untuk mengisih mengikut berbilang kunci pada masa yang sama Anda perlu menyediakan kekunci isihan dan tatasusunan untuk diisih.

Pengisihan Array Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Isih

Pengisihan Tatasusunan Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Pengisihan

Pengisihan tatasusunan berbilang dimensi ialah tugas biasa dalam pembangunan PHP. Apabila mengisih tatasusunan berbilang dimensi, anda boleh mengisih mengikut satu atau berbilang kunci. Artikel ini akan meneroka algoritma untuk menyusun tatasusunan berbilang dimensi dalam PHP dan menyediakan kes praktikal.

Algoritma

Fungsi terbina dalam sort() dan asort()sort()asort()

  • sort() 根据键的自然顺序对关联数组按值递增排序。
  • asort() 根据键的自然顺序对关联数组按值递减排序。

自定义排序函数

自定义排序函数允许您按任意键进行排序。当您需要根据复杂规则排序时,此方法很有用。

function compare($a, $b) {
  return strcmp($a['name'], $b['name']);
}

内置函数 array_multisort()

array_multisort()

  • sort() mengikut kepada kunci Tertib semula jadi menyusun tatasusunan bersekutu dengan meningkatkan nilai.
  • asort() Mengisih tatasusunan bersekutu dalam tertib nilai menurun mengikut susunan semula jadi kekunci.

Fungsi Isih Tersuai

Fungsi isihan tersuai membolehkan anda mengisih mengikut sebarang kekunci. Kaedah ini berguna apabila anda perlu mengisih berdasarkan peraturan yang rumit.

$array = [
  ['name' => 'Alice', 'age' => 25],
  ['name' => 'Bob', 'age' => 32],
  ['name' => 'Eve', 'age' => 28],
];

Fungsi terbina dalam array_multisort()

array_multisort() membolehkan anda mengisih menggunakan berbilang kekunci pada masa yang sama. Ia memerlukan dua tatasusunan, satu mengandungi kunci isihan dan satu lagi mengandungi tatasusunan untuk diisih.

Kes praktikalPertimbangkan tatasusunan berbilang dimensi berikut:

usort($array, 'compare');
🎜🎜Isih mengikut peningkatan nama🎜🎜
array_multisort(array_column($array, 'name'), SORT_ASC, array_column($array, 'age'), SORT_DESC);
🎜🎜Isih mengikut peningkatan nama, penurunan umur🎜🎜
print_r($array);
// [
//   ['name' => 'Alice', 'age' => 25],
//   ['name' => 'Eve', 'age' => 28],
//   ['name' => 'Bob', 'age' => 32],
// ]
yang disusun🎜🎜rrreee🎜🎜rrreee yang disusun🎜🎜rrreee🎜

Atas ialah kandungan terperinci Pengisihan Array Berbilang Dimensi PHP Didedahkan: Mendedahkan Misteri Algoritma Isih. 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