Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bincangkan tentang kaedah pelaksanaan khusus pengisihan berbilang tatasusunan dalam PHP

Mari kita bincangkan tentang kaedah pelaksanaan khusus pengisihan berbilang tatasusunan dalam PHP

PHPz
PHPzasal
2023-04-18 09:06:32570semak imbas

Dalam PHP, tatasusunan ialah jenis data yang sangat biasa digunakan, dan dalam pembangunan sebenar, kita selalunya perlu mengisih tatasusunan. PHP menyediakan pelbagai algoritma pengisihan dan fungsi, yang boleh menjadikan operasi pengisihan sangat mudah dan cekap. Artikel ini akan memperkenalkan kaedah pelaksanaan khusus pengisihan berbilang tatasusunan dalam PHP.

I. Pengisihan tatasusunan satu dimensi

PHP menyediakan pelbagai algoritma dan fungsi pengisihan, yang boleh menjadikan operasi pengisihan mudah dan cekap. Antaranya, fungsi yang paling biasa digunakan ialah sort(), rsort(), asort(), arsort(), ksort(), krsort(), yang digunakan untuk mengisih tatasusunan pelbagai jenis.

  1. sort() dan rsort()

fungsi sort() dan rsort() digunakan untuk mengisih tatasusunan satu dimensi dalam tertib menaik (dari kecil ke besar) dan tertib menurun (daripada Terbesar kepada Terkecil) diisih. Fungsi sort() mengisih unsur dalam tertib menaik, dan fungsi rsort() mengisih unsur dalam tertib menurun.

Berikut ialah contoh menggunakan fungsi sort() untuk mengisih tatasusunan satu dimensi dalam tertib menaik:

<?php
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
print_r($fruits);
?>

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => lemon
    [3] => orange
)

Berikut ialah contoh penggunaan rsort Contoh () fungsi mengisih tatasusunan satu dimensi dalam tertib menurun:

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
print_r($fruits);
?>

Hasil keluaran:

Array
(
    [0] => orange
    [1] => lemon
    [2] => banana
    [3] => apple
)
  1. asort() dan arsort()

Fungsi asort() dan arsort() digunakan untuk mengisih tatasusunan satu dimensi dalam tertib menaik (dari kecil ke besar) dan tertib menurun (dari besar ke kecil). Tidak seperti sort() dan rsort(), fungsi asort() dan arsort() mengekalkan hubungan indeks tatasusunan tidak berubah.

Berikut ialah contoh menggunakan fungsi asort() untuk mengisih tatasusunan satu dimensi dalam tertib menaik:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
asort($age);
print_r($age);
?>

Hasil keluaran:

Array
(
    [Peter] => 35
    [Ben] => 37
    [Joe] => 43
)

Berikut ialah contoh penggunaan asort() Contoh () fungsi mengisih tatasusunan satu dimensi dalam tertib menurun:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
arsort($age);
print_r($age);
?>

Hasil keluaran:

Array
(
    [Joe] => 43
    [Ben] => 37
    [Peter] => 35
)
  1. ksort () dan krsort()

Fungsi ksort() dan krsort() digunakan untuk mengisih tatasusunan satu dimensi dalam tertib menaik (dari kecil ke besar) atau tertib menurun (dari besar ke kecil ) dengan kunci. Fungsi ksort() mengisih mengikut nilai kunci dalam tertib menaik, manakala fungsi krsort() mengisih mengikut nilai kunci dalam tertib menurun.

Berikut ialah contoh menggunakan fungsi ksort() untuk mengisih tatasusunan satu dimensi dalam tertib menaik mengikut kekunci:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
ksort($age);
print_r($age);
?>

Hasil keluaran:

Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)

Berikut ialah Contoh penggunaan fungsi krsort() untuk mengisih tatasusunan satu dimensi dalam tertib menurun mengikut kekunci:

<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
krsort($age);
print_r($age);
?>

Hasil keluaran:

Array
(
    [Peter] => 35
    [Joe] => 43
    [Ben] => 37
)

II. Isih tatasusunan berbilang dimensi

Untuk pengisihan tatasusunan berbilang dimensi, jika kita mengisih mengikut elemen tatasusunan dimensi pertama, kita boleh menggunakan empat fungsi sort(), rsort(), asort(), dan arsort(). Tetapi jika kita perlu mengisih mengikut kekunci lain tatasusunan berbilang dimensi, kita perlu menggunakan fungsi usort().

Fungsi usort() membolehkan kami menyesuaikan fungsi pengisihan untuk memenuhi pelbagai keperluan pengisihan kami. Apabila kami menyesuaikan fungsi pengisihan, kami menerima dua parameter, yang merujuk kepada dua elemen untuk dibandingkan. Apabila hasil perbandingan kedua-dua elemen ini kurang daripada 0, letakkan $elem1 sebelum $elem2, jika tidak letakkan $elem1 selepas $elem2.

Berikut ialah contoh menggunakan fungsi usort() untuk mengisih tatasusunan berbilang dimensi:

<?php
$cars = array(
    array("Volvo",22,18),
    array("BMW",15,13),
    array("Saab",5,2),
    array("Land Rover",17,15)
);

function my_sort($a,$b)
{
    if ($a[0] == $b[0]) return 0;
    return ($a[0] < $b[0]) ? -1 : 1;
}

usort($cars, "my_sort");

foreach ($cars as $car) {
    echo $car[0] . " " . $car[1] . " " . $car[2] . "<br>";
}
?>

Hasil keluaran:

BMW 15 13
Land Rover 17 15
Saab 5 2
Volvo 22 18

Dalam perkara di atas contoh, kami Mentakrifkan fungsi my_sort() yang membandingkan elemen pertama tatasusunan. Kemudian panggil fungsi usort() dan hantar tatasusunan berbilang dimensi untuk diisih dan nama fungsi isihan tersuai kepada fungsi usort(). Selepas pengisihan selesai, kami menggunakan penyataan foreach untuk melintasi hasil yang diisih.

Ringkasnya, PHP menyediakan pelbagai algoritma pengisihan dan fungsi untuk memenuhi pelbagai keperluan pengisihan kami. Sama ada tatasusunan satu dimensi atau tatasusunan berbilang dimensi, PHP menyediakan fungsi pengisihan yang berbeza untuk beroperasi, membolehkan kami mengisih tatasusunan dengan mudah dan mudah.

Atas ialah kandungan terperinci Mari kita bincangkan tentang kaedah pelaksanaan khusus pengisihan berbilang tatasusunan 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