Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengisih Tatasusunan dan Data dalam PHP?

Bagaimana untuk Mengisih Tatasusunan dan Data dalam PHP?

Linda Hamilton
Lepaskan: 2025-01-02 15:36:41
asal
926 orang telah melayarinya

How to Sort Arrays and Data in PHP?

Bagaimanakah saya boleh mengisih tatasusunan dan data dalam PHP?

Asas Tatasusunan Satu Dimensi

Ini termasuk tatasusunan berbilang dimensi, termasuk tatasusunan objek dan pengisihan satu tatasusunan berdasarkan yang lain.

Isih Fungsi:

  • isih
  • isih
  • isih
  • isih
  • natsort
  • natcasesort
  • ksort
  • krsort

Multi Tatasusunan Dimensi, Termasuk Tatasusunan Objek

PHP memerlukan fungsi perbandingan tersuai untuk mengisih nilai yang kompleks.

Langkah:

  1. Buat fungsi perbandingan yang mengambil dua elemen dan mengembalikan:

    • 0 jika elemen adalah sama.
    • Nilai kurang daripada 0 jika nilai pertama lebih rendah.
    • Nilai lebih besar daripada 0 jika nilai pertama lebih tinggi.
  2. Gunakan salah satu daripada ini fungsi:

    • usort
    • uasort
    • uksort

Perbandingan Numerik Tersuai

Jika menyusun mengikut angka kunci:

function cmp(array $a, array $b) {
    return $a['baz'] - $b['baz'];
}
Salin selepas log masuk

Objek

Jika mengisih tatasusunan objek:

function cmp($a, $b) {
    return $a->baz - $b->baz;
}
Salin selepas log masuk

Isih mengikut Pelbagai Medan

Untuk pengisihan utama mengikut satu medan (cth., "foo") dan pengisihan sekunder oleh yang lain (cth., "baz"):

function cmp(array $a, array $b) {
    if (($cmp = strcmp($a['foo'], $b['foo'])) !== 0) {
        return $cmp;
    } else {
        return $a['baz'] - $b['baz'];
    }
}
Salin selepas log masuk

Isih ke dalam Pesanan Manual

Untuk mengisih mengikut susunan tertentu (cth., "foo", "bar", "baz"):

function cmp(array $a, array $b) {
    static $order = array('foo', 'bar', 'baz');
    return array_search($a['foo'], $order) - array_search($b['foo'], $order);
}
Salin selepas log masuk

Mengisih Satu Tatasusunan Berdasarkan Satu Lagi

Untuk mengisih satu Tatasusunan berdasarkan satu lagi:

array_multisort($array1, $array2);
Salin selepas log masuk

Array_column

Setakat PHP 5.5.0, anda boleh menggunakan array_column untuk mengekstrak lajur tertentu dan mengisih tatasusunan dengan sewajarnya:

array_multisort(array_column($array, 'foo'), SORT_DESC, $array);
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan dan Data 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan