Rumah > pembangunan bahagian belakang > masalah PHP > 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
Lepaskan: 2023-04-18 09:40:40
asal
637 orang telah melayarinya

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

Hasil keluaran:

Array
(
    [0] => apple
    [1] => banana
    [2] => lemon
    [3] => orange
)
Salin selepas log masuk

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

Hasil keluaran:

Array
(
    [0] => orange
    [1] => lemon
    [2] => banana
    [3] => apple
)
Salin selepas log masuk
  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);
?>
Salin selepas log masuk

Hasil keluaran:

Array
(
    [Peter] => 35
    [Ben] => 37
    [Joe] => 43
)
Salin selepas log masuk

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

Hasil keluaran:

Array
(
    [Joe] => 43
    [Ben] => 37
    [Peter] => 35
)
Salin selepas log masuk
  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);
?>
Salin selepas log masuk

Hasil keluaran:

Array
(
    [Ben] => 37
    [Joe] => 43
    [Peter] => 35
)
Salin selepas log masuk

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

Hasil keluaran:

Array
(
    [Peter] => 35
    [Joe] => 43
    [Ben] => 37
)
Salin selepas log masuk

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>";
}
?>
Salin selepas log masuk

Hasil keluaran:

BMW 15 13
Land Rover 17 15
Saab 5 2
Volvo 22 18
Salin selepas log masuk

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!

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