Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Mengisih Tatasusunan Multidimensi mengikut Medan Tatasusunan Dalaman dalam PHP?

Bagaimana untuk Mengisih Tatasusunan Multidimensi mengikut Medan Tatasusunan Dalaman dalam PHP?

Mary-Kate Olsen
Lepaskan: 2024-11-28 22:58:15
asal
421 orang telah melayarinya

How to Sort Multidimensional Arrays by Inner Array Fields in PHP?

Mengisih Tatasusunan Berbilang Dimensi mengikut Medan Tatasusunan Dalam dalam PHP

Mengisih tatasusunan berbilang dimensi mengikut medan dalam tatasusunan dalam boleh menjadi tugas biasa apabila bekerja dengan data berstruktur dalam PHP. Ini boleh berguna untuk menyusun dan mendapatkan semula data dengan cekap.

Untuk mengisih tatasusunan berbilang dimensi mengikut salah satu medan tatasusunan dalam, anda boleh menggunakan fungsi array_multisort() bersama-sama dengan array_column(). Fungsi array_column() mengekstrak lajur nilai daripada tatasusunan dalam, mencipta tatasusunan satu dimensi yang kemudiannya boleh diisih.

Sintaks untuk mengisih tatasusunan berbilang dimensi mengikut medan "harga" tatasusunan dalam adalah seperti berikut:

array_multisort(array_column($yourArray, "price"), SORT_ASC, $yourArray);
Salin selepas log masuk

Dalam contoh ini, $yourArray mewakili tatasusunan berbilang dimensi yang anda ingin menyusun. Pemalar SORT_ASC menentukan tertib menaik untuk pengisihan.

Berikut ialah pecahan terperinci kod:

  • array_column($yourArray, "price"): Baris ini mengeluarkan "harga" nilai daripada tatasusunan dalam, mewujudkan tatasusunan satu dimensi bagi harga.
  • SORT_ASC: Pemalar ini mentakrifkan tertib menaik untuk pengisihan. Anda boleh menggunakan SORT_DESC untuk tertib menurun.
  • $yourArray: Pembolehubah ini diluluskan sebagai parameter terakhir untuk menggunakan pengisihan kepada tatasusunan berbilang dimensi asal.

Selepas melaksanakan kod ini, $yourArray akan diisih mengikut medan "harga" dalam tertib menaik. Kekunci tatasusunan luar tidak akan disimpan.

Nota: Dalam PHP 7 dan lebih tinggi, menggunakan sintaks ini boleh menyebabkan ralat yang berkaitan dengan menghantar pembolehubah melalui rujukan. Untuk mengelakkan perkara ini, anda boleh menggunakan pendekatan dua baris:

$col = array_column($yourArray, "price");
array_multisort($col, SORT_ASC, $yourArray);
Salin selepas log masuk

Walau bagaimanapun, dalam PHP 8, sintaks satu baris berfungsi seperti yang diharapkan lagi.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Multidimensi mengikut Medan Tatasusunan Dalaman 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