Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk mengisih nilai dalam tatasusunan menggunakan php

Bagaimana untuk mengisih nilai dalam tatasusunan menggunakan php

王林
王林asal
2023-05-11 09:32:36913semak imbas

Dalam PHP, terdapat banyak cara untuk mengisih nilai dalam tatasusunan. Dalam artikel ini, kami akan membincangkan beberapa kaedah pengisihan biasa dalam PHP dan menyediakan kod sampel untuk membantu anda memahami dengan lebih baik cara mengisih nilai dalam tatasusunan.

1. Fungsi sort()

sort() ialah salah satu fungsi pengisihan terbina dalam PHP Ia boleh mengisih nilai dalam tatasusunan dalam tertib menaik, iaitu, menyusun daripada kecil ke besar. Penggunaan fungsi sort() adalah seperti berikut:

sort($array);

Antaranya, $array mewakili tatasusunan yang hendak diisih.

Kod sampel adalah seperti berikut:

$ages = array(20, 15, 30, 25, 18);
sort($ages);
print_r($ages);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [0] => 15
    [1] => 18
    [2] => 20
    [3] => 25
    [4] => 30
)

Jika anda ingin mengisih mengikut tertib menurun, anda boleh gunakan fungsi rsort(). Penggunaan fungsi rsort() adalah serupa dengan penggunaan fungsi sort().

Kod sampel adalah seperti berikut:

$ages = array(20, 15, 30, 25, 18);
rsort($ages);
print_r($ages);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [0] => 30
    [1] => 25
    [2] => 20
    [3] => 18
    [4] => 15
)

2. fungsi asort()

fungsi asort() Anda boleh mengisih nilai dalam tatasusunan dalam tertib menaik, mengekalkan nama kunci. Dalam erti kata lain, selepas mengisih, hubungan antara nama utama dan nilai kekal tidak berubah. Ini berguna untuk situasi di mana anda perlu mencari nama kunci berdasarkan nilainya.

Fungsi asort() digunakan seperti berikut:

asort($array);

di mana $array mewakili tatasusunan yang hendak diisih.

Kod sampel adalah seperti berikut:

$ages = array("Peter"=>20, "John"=>15, "Mary"=>30, "David"=>25, "Jake"=>18);
asort($ages);
print_r($ages);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [John] => 15
    [Jake] => 18
    [Peter] => 20
    [David] => 25
    [Mary] => 30
)

Jika anda ingin mengisih mengikut tertib menurun, anda boleh gunakan fungsi arsort().

Kod sampel adalah seperti berikut:

$ages = array("Peter"=>20, "John"=>15, "Mary"=>30, "David"=>25, "Jake"=>18);
arsort($ages);
print_r($ages);

Kod di atas akan mengeluarkan hasil berikut pada skrin:

Array
(
    [Mary] => 30
    [David] => 25
    [Peter] => 20
    [Jake] => 18
    [John] => 15
)

3 fungsi ksort()

ksort() function Anda boleh mengisih nilai dalam tatasusunan dalam tertib menaik berdasarkan nama kunci. Penggunaan fungsi ksort() adalah seperti berikut:

ksort($array);

Antaranya, $array mewakili tatasusunan yang hendak diisih.

Kod sampel adalah seperti berikut:

$age = array("Peter"=>20, "John"=>15, "Mary"=>30, "David"=>25, "Jake"=>18);
ksort($age);
print_r($age);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [David] => 25
    [Jake] => 18
    [John] => 15
    [Mary] => 30
    [Peter] => 20
)

Jika anda ingin mengisih mengikut tertib menurun, anda boleh gunakan fungsi krsort().

Kod sampel adalah seperti berikut:

$age = array("Peter"=>20, "John"=>15, "Mary"=>30, "David"=>25, "Jake"=>18);
krsort($age);
print_r($age);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [Peter] => 20
    [Mary] => 30
    [John] => 15
    [Jake] => 18
    [David] => 25
)

4. usort() fungsi

Jika anda perlu menyesuaikan Untuk menentukan logik pengisihan, anda boleh menggunakan fungsi usort(). Fungsi usort() membolehkan anda mentakrifkan fungsi panggil balik untuk membandingkan dua nilai. Fungsi panggil balik ini akan menerima dua parameter dan mengembalikan integer kurang daripada, sama dengan, atau lebih besar daripada 0 untuk menunjukkan hubungan susunan antara kedua-dua nilai. Penggunaan fungsi

usort() adalah seperti berikut:

usort($array, $callback);

Antaranya, $array mewakili tatasusunan yang hendak diisih dan $callback mewakili fungsi panggil balik yang digunakan untuk membandingkan dua nilai.

Kod sampel adalah seperti berikut:

function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? -1 : 1;
}

$ages = array(20, 15, 30, 25, 18);
usort($ages, "cmp");
print_r($ages);

Kod di atas akan mengeluarkan keputusan berikut pada skrin:

Array
(
    [0] => 30
    [1] => 25
    [2] => 20
    [3] => 18
    [4] => 15
)

Dalam contoh di atas, kami telah menentukan panggilan balik bernama fungsi "cmp". Fungsi ini menerima dua parameter ($a, $b) dan mengembalikan integer kurang daripada, sama dengan, atau lebih besar daripada 0. Dalam contoh ini, kami menggunakan fungsi panggil balik untuk mengisih nilai dalam tatasusunan dalam tertib menurun.

Ringkasan

Dalam PHP, terdapat pelbagai cara untuk mengisih nilai dalam tatasusunan. Anda boleh mengisih dalam tertib menaik dan menurun menggunakan fungsi sort() dan rsort(). Anda juga boleh menggunakan fungsi asort() dan arsort() untuk mengisih tatasusunan berdasarkan nilai dan mengekalkan nama kunci. Jika anda perlu mengisih nilai dalam tatasusunan berdasarkan nama kunci, anda boleh menggunakan fungsi ksort() dan krsort(). Akhir sekali, jika anda memerlukan logik pengisihan tersuai, anda boleh menggunakan fungsi usort().

Tidak kira jenis pengisihan yang anda perlukan, terdapat fungsi dan kaedah yang sepadan dalam PHP untuk membantu anda menyelesaikan tugas. Dengan mempelajari kandungan di atas, anda boleh lebih bebas mengendalikan nilai dalam tatasusunan semasa menulis kod PHP dan meningkatkan kecekapan pembangunan anda.

Atas ialah kandungan terperinci Bagaimana untuk mengisih nilai dalam tatasusunan menggunakan 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