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
Mary-Kate Olsenasal
2024-11-28 22:58:15423semak imbas

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);

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);

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!

Kenyataan:
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