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

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

PHPz
Lepaskan: 2023-04-10 11:29:33
asal
798 orang telah melayarinya

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

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

sort($arr);
Salin selepas log masuk
Salin selepas log masuk

The tatasusunan diisih Untuk:

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

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

Kami menggunakan fungsi sort() untuk mengisihnya:

sort($arr);
Salin selepas log masuk
Salin selepas log masuk

Array yang diisih ialah:

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

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

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

rsort($arr);
Salin selepas log masuk

Tatasusunan yang diisih Untuk:

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

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

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

asort($arr);
Salin selepas log masuk

Yang diisih tatasusunan ialah :

Array ( [orange] => 2 [peach] => 3 [apple] => 5 [banana] => 8 )
Salin selepas log masuk

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

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

ksort($arr);
Salin selepas log masuk

The tatasusunan diisih Untuk:

Array ( [w] => 2 [x] => 5 [y] => 3 [z] => 8 )
Salin selepas log masuk

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

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

Tatasusunan yang diisih ialah:

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

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

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

)
Salin selepas log masuk

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!

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