Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah saya boleh mengisih tatasusunan berbilang dimensi dalam PHP menggunakan berbilang lajur dengan `array_multisort()`?

Bagaimanakah saya boleh mengisih tatasusunan berbilang dimensi dalam PHP menggunakan berbilang lajur dengan `array_multisort()`?

Patricia Arquette
Lepaskan: 2024-12-16 14:23:15
asal
105 orang telah melayarinya

How can I sort a multidimensional array in PHP using multiple columns with `array_multisort()`?

Mengisih Tatasusunan Berbilang Dimensi mengikut Berbilang Lajur

Mengisih tatasusunan berbilang dimensi menggunakan berbilang kriteria boleh menjadi tugas yang rumit, tetapi ini penting untuk mengatur dan mendapatkan semula data dengan cekap. Soalan ini meneroka cara mengisih tatasusunan berbilang dimensi berdasarkan berbilang lajur menggunakan array_multisort().

Memahami array_multisort()

array_multisort() ialah fungsi PHP terbina dalam yang boleh menyusun tatasusunan dengan pelbagai kriteria. Ia memerlukan bilangan tatasusunan yang sewenang-wenangnya sebagai input, mewakili lajur untuk diisih mengikut. Elemen yang sepadan daripada setiap tatasusunan input dibandingkan untuk pengisihan.

Pelaksanaan

  1. Kenal pasti Kekunci Isih: Tentukan lajur yang anda mahu susun mengikut. Dalam kes ini, anda mempunyai 'keadaan,' 'event_type,' dan 'date_start.'
  2. Dapatkan Data Lajur: Cipta tatasusunan ($sort) untuk menyimpan nilai bagi jenis yang ditentukan kunci. Gelung melalui tatasusunan asal dan ekstrak data untuk setiap kunci.
  3. Isih Lajur: Panggil array_multisort() dengan tatasusunan $sort. Nyatakan susunan isihan yang diingini untuk setiap lajur (cth., SORT_DESC untuk 'keadaan').
  4. Kemas kini Tatasusunan Asal: Selepas mengisih, array_multisort() mengubah suai tatasusunan asal ($mylist).

Contoh Kod

$sort = array();
foreach($mylist as $k=>$v) {
    $sort['state'][$k] = $v['state'];
    $sort['event_type'][$k] = $v['event_type'];
    $sort['date_start'][$k] = $v['date_start'];
}

array_multisort($sort['state'], SORT_ASC,
                $sort['event_type'], SORT_DESC,
                $sort['date_start'], SORT_ASC,
                $mylist);
Salin selepas log masuk

Keputusan:

Tatasusunan $mylist akan diisih dalam tertib menaik mengikut 'keadaan', tertib menurun mengikut 'event_type,' dan tertib menaik mengikut 'tarikh_mula.'

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengisih tatasusunan berbilang dimensi dalam PHP menggunakan berbilang lajur dengan `array_multisort()`?. 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