Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mengisih Tatasusunan Berbilang Dimensi mengikut Lajur Tertentu dalam PHP?

Bagaimana untuk Mengisih Tatasusunan Berbilang Dimensi mengikut Lajur Tertentu dalam PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 22:39:33406semak imbas

How to Sort a Multidimensional Array by a Specified Column in PHP?

Mengisih Tatasusunan Berbilang Dimensi mengikut Lajur Tertentu dalam PHP

Untuk mengisih tatasusunan berbilang dimensi dalam PHP mengikut lajur tertentu, gunakan binaan- dalam fungsi PHP usort atau uasort. Kunci pengisihan ialah menyediakan fungsi perbandingan tersuai yang menentukan susunan elemen tatasusunan.

Fungsi Perbandingan Tersuai untuk Isih

Fungsi perbandingan tersuai mengambil dua elemen daripada tatasusunan sebagai input dan mengembalikan integer:

  • Integer positif jika elemen pertama dianggap "lebih besar" daripada yang kedua.
  • Integer negatif jika elemen pertama dianggap "kurang" daripada yang kedua.
  • Sifar jika elemen dianggap sama.

Isih mengikut Lajur Tunggal

Katakan anda mempunyai tatasusunan berbilang dimensi yang dipanggil $data di mana setiap elemen mewakili rekod dengan berbilang lajur. Untuk mengisih tatasusunan mengikut lajur 'name', gunakan kod berikut:

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

Fungsi perbandingan tersuai ini menggunakan fungsi strcmp untuk membandingkan nilai lajur 'name' untuk setiap elemen. Tatasusunan yang diisih akan mempunyai elemen yang disusun mengikut abjad berdasarkan lajur 'name'.

Isih mengikut Berbilang Lajur

Untuk mengisih mengikut berbilang lajur , hantar parameter tambahan kepada fungsi perbandingan tersuai. Contohnya, untuk mengisih mengikut 'nombor' dan kemudian 'nama':

usort($data, function($a, $b) {
  if ($a['number'] == $b['number']) {
    return strcmp($a['name'], $b['name']);
  }
  return $a['number'] - $b['number'];
});

Ciri Terperinci

Anda juga boleh menentukan ciri lanjutan berikut:

  • Terbalik Isih: Tetapkan parameter kedua fungsi perbandingan kepada SORT_DESC untuk membalikkan tertib isihan.
  • Unjuran Tersuai: Jika nilai lajur tidak boleh dibandingkan secara langsung , sediakan fungsi unjuran sebagai parameter ketiga untuk menukarnya.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Tatasusunan Berbilang Dimensi mengikut Lajur Tertentu 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