Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengisih tatasusunan satu dimensi dalam php (analisis ringkas kaedah)

Bagaimana untuk mengisih tatasusunan satu dimensi dalam php (analisis ringkas kaedah)

PHPz
PHPzasal
2023-04-10 09:44:14732semak imbas

PHP, sebagai bahasa skrip, sering digunakan dalam aplikasi pembangunan web. Operasi tatasusunan adalah salah satu operasi yang biasa digunakan dalam pembangunan PHP. Tatasusunan selalunya perlu diisih untuk pemprosesan selanjutnya.

Untuk mengisih tatasusunan satu dimensi, fungsi sort() dan rsort() biasanya digunakan. Mari kita lihat penggunaannya.

fungsi sort()

fungsi sort() boleh mengisih tatasusunan dalam tertib menaik. Fungsi ini akan menukar perhubungan nilai kunci tatasusunan asal dan mengembalikan nilai Boolean (benar atau palsu) untuk menunjukkan sama ada pengisihan berjaya.

Sebagai contoh, kita mempunyai tatasusunan satu dimensi:

$arr = array(5,8,3,0,2,7,1);

Kita boleh mengisihnya dalam tertib menaik menggunakan fungsi sort():

sort($arr);

The tatasusunan diisih Untuk:

Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 7 [6] => 8 )

Fungsi sort() juga boleh mengisih tatasusunan rentetan. Perlu diingatkan bahawa fungsi sort() disusun mengikut susunan aksara dalam jadual kod ASCII, bukan mengikut susunan kamus.

Sebagai contoh, kami mempunyai tatasusunan rentetan:

$arr = array("apple", "banana", "peach", "orange");

Kami menggunakan fungsi sort() untuk mengisihnya:

sort($arr);

Array yang diisih ialah:

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

Dapat dilihat bahawa hasil pengisihan tidak disusun mengikut susunan abjad.

fungsi rsort()

fungsi rsort() pada asasnya sama dengan fungsi sort(), kecuali ia diisih dalam tertib menurun.

Sebagai contoh, kita mempunyai tatasusunan satu dimensi:

$arr = array(5,8,3,0,2,7,1);

Kita boleh menggunakan fungsi rsort() untuk mengisihnya dalam tertib menurun:

rsort($arr);

Tatasusunan yang diisih Untuk:

Array ( [0] => 8 [1] => 7 [2] => 5 [3] => 3 [4] => 2 [5] => 1 [6] => 0 )

fungsi rsort() juga sesuai untuk menyusun tatasusunan rentetan.

fungsi asort() dan fungsi arsort()

fungsi asort() dan fungsi arsort() pada asasnya sama dengan fungsi sort() dan fungsi rsort(), kecuali ia akan mengekalkan tatasusunan asal Nama kunci (hubungan nilai-kunci).

Sebagai contoh, kami mempunyai tatasusunan bersekutu:

$arr = array("apple" => 5, "banana" => 8, "peach" => 3, "orange" => 2);

Kita boleh menggunakan fungsi asort() untuk mengisihnya dalam tertib menaik:

asort($arr);

Yang diisih tatasusunan ialah :

Array ( [orange] => 2 [peach] => 3 [apple] => 5 [banana] => 8 )

Seperti yang anda lihat, nama kunci (hubungan nilai-kunci) kekal sama. Fungsi

arsort() juga sesuai untuk mengisih tatasusunan bersekutu dalam tertib menurun.

fungsi ksort() dan fungsi krsort()

fungsi ksort() dan fungsi krsort() digunakan untuk mengisih tatasusunan nilai kunci dalam tertib menaik dan tertib menurun mengikut nama kunci.

Sebagai contoh, kami mempunyai tatasusunan nilai utama:

$arr = array("x" => 5, "z" => 8, "y" => 3, "w" => 2);

Kita boleh mengisihnya dalam tertib menaik menggunakan fungsi ksort():

ksort($arr);

The tatasusunan diisih Untuk:

Array ( [w] => 2 [x] => 5 [y] => 3 [z] => 8 )

Anda boleh melihat bahawa elemen tatasusunan diisih mengikut nama kunci (susun abjad).

Fungsi krsort() juga sesuai untuk mengisih tatasusunan nilai kunci dalam tertib menurun.

Isih tatasusunan berbilang dimensi

Fungsi di atas sesuai untuk mengisih tatasusunan satu dimensi. Apabila berurusan dengan tatasusunan berbilang dimensi, anda perlu memberi perhatian kepada hubungan hierarki pengisihan.

Sebagai contoh, kami mempunyai tatasusunan dua dimensi:

$arr = array(
    array("name" => "xiaoming", "age" => 30),
    array("name" => "xiaohong", "age" => 25),
    array("name" => "xiaoli", "age" => 20)
);

Kita boleh menggunakan fungsi usort() untuk mengisihnya dalam tertib menaik mengikut umur:

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

Tatasusunan yang diisih ialah:

Array
(
    [0] => Array
        (
            [name] => xiaoli
            [age] => 20
        )

    [1] => Array
        (
            [name] => xiaohong
            [age] => 25
        )

    [2] => Array
        (
            [name] => xiaoming
            [age] => 30
        )

)

Seperti yang anda lihat, fungsi usort() mengisih tatasusunan dua dimensi dalam tertib menaik mengikut umur.

Ringkasan

Untuk mengisih tatasusunan satu dimensi, anda boleh menggunakan fungsi sort() dan fungsi rsort(). Untuk mengisih tatasusunan bersekutu, anda boleh menggunakan fungsi asort() dan fungsi arsort() Untuk mengisih tatasusunan nilai kunci, anda boleh menggunakan fungsi ksort() dan fungsi krsort(). Apabila berurusan dengan tatasusunan berbilang dimensi, anda boleh menggunakan fungsi usort() untuk mencapai pengisihan. Penggunaan fungsi di atas boleh meningkatkan kecekapan dan ketepatan pemprosesan tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk mengisih tatasusunan satu dimensi dalam php (analisis ringkas kaedah). 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