Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk menyusun tatasusunan berbilang dimensi dalam PHP

Bagaimana untuk menyusun tatasusunan berbilang dimensi dalam PHP

WBOY
Lepaskan: 2023-07-07 12:56:02
asal
1794 orang telah melayarinya

Cara mengisih tatasusunan berbilang dimensi dalam PHP

Dalam PHP, tatasusunan ialah struktur data yang sangat biasa dan penting, dan tatasusunan berbilang dimensi digunakan dengan lebih kerap dalam beberapa pemprosesan data yang kompleks. Walau bagaimanapun, menyusun tatasusunan berbilang dimensi boleh menjadi agak rumit. Artikel ini akan menunjukkan kepada anda cara mengisih tatasusunan berbilang dimensi dalam PHP dan memberikan contoh kod khusus.

Sebelum kita bermula, mari kita fahami struktur tatasusunan berbilang dimensi. Tatasusunan multidimensi bermakna unsur-unsur dalam tatasusunan juga merupakan tatasusunan, membentuk struktur bersarang. Contohnya:

$students = array(
    array('name' => 'John', 'age' => 19),
    array('name' => 'Emily', 'age' => 21),
    array('name' => 'Tom', 'age' => 18)
);
Salin selepas log masuk

Dalam contoh di atas, $pelajar ialah tatasusunan yang mengandungi 3 elemen, setiap elemen ialah tatasusunan bersekutu yang mengandungi nama dan umur pelajar. Kami akan menggunakan tatasusunan ini sebagai contoh untuk mengisih.

Untuk mengisih tatasusunan berbilang dimensi, kaedah yang paling biasa ialah menggunakan fungsi usort(). Fungsi usort() membolehkan kita mengisih tatasusunan mengikut peraturan pengisihan yang ditentukan. Berikut ialah contoh mudah yang menunjukkan cara mengisih pelajar mengikut umur:

usort($students, function($a, $b){
    return $a['age'] - $b['age'];
});

// 打印排序后的结果
print_r($students);
Salin selepas log masuk

Dengan kod di atas, kami menggunakan fungsi tanpa nama sebagai parameter kedua bagi fungsi usort(). Fungsi tanpa nama ini menerima dua parameter $a dan $b, yang masing-masing mewakili dua elemen dalam tatasusunan Dalam contoh kami, ia adalah maklumat dua pelajar. Kami menentukan susunan dua pelajar dengan membandingkan umur mereka.

Dalam fungsi tanpa nama, kembalikan $a['age'] - $b['age'] menentukan kaedah pengisihan. Jika nilai pulangan ialah nombor negatif, maka $a hendaklah diisih sebelum $b jika nilai pulangan ialah nombor positif, maka $a hendaklah diisih selepas $b jika nilai pulangan ialah 0, maka susunan $ a dan $b tidak akan berubah.

Selepas menjalankan kod di atas, anda akan mendapat keputusan berikut:

Array
(
    [0] => Array
        (
            [name] => Tom
            [age] => 18
        )

    [1] => Array
        (
            [name] => John
            [age] => 19
        )

    [2] => Array
        (
            [name] => Emily
            [age] => 21
        )
)
Salin selepas log masuk

Anda boleh melihat bahawa pelajar dalam tatasusunan disusun mengikut urutan dari umur terkecil hingga terbesar.

Selain mengisih mengikut umur dalam contoh, kita juga boleh mengisih tatasusunan berbilang dimensi berdasarkan medan lain. Sebagai contoh, kita boleh mengisih berdasarkan nama pelajar:

usort($students, function($a, $b){
    return strcmp($a['name'], $b['name']);
});

// 打印排序后的结果
print_r($students);
Salin selepas log masuk

Dalam contoh ini, kami menggunakan fungsi strcmp() untuk membandingkan nama pelajar. Fungsi strcmp() membandingkan dua rentetan dalam susunan abjad dan mengembalikan integer yang sepadan berdasarkan hasil perbandingan. Dalam contoh kami, return strcmp($a['name'], $b['name']) menentukan susunan nama pelajar.

Selepas menjalankan kod di atas, anda akan mendapat keputusan berikut:

Array
(
    [0] => Array
        (
            [name] => Emily
            [age] => 21
        )

    [1] => Array
        (
            [name] => John
            [age] => 19
        )

    [2] => Array
        (
            [name] => Tom
            [age] => 18
        )
)
Salin selepas log masuk

Anda boleh melihat bahawa pelajar dalam tatasusunan disusun mengikut urutan dari A hingga Z mengikut nama.

Ringkasan:

Mengisih tatasusunan berbilang dimensi dalam PHP tidaklah rumit Dengan menggunakan fungsi usort() dan peraturan pengisihan yang sesuai, kami boleh melaksanakan operasi pengisihan pada tatasusunan berbilang dimensi. Contoh kod yang ditunjukkan dalam artikel ini boleh membantu anda memahami dengan lebih baik cara menggunakan kaedah pengisihan ini. Saya harap artikel ini akan membantu anda apabila berurusan dengan tatasusunan berbilang dimensi.

Atas ialah kandungan terperinci Bagaimana untuk menyusun tatasusunan berbilang dimensi 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