Masalah ini agak serupa dengan pesanan oleh dalam Mysql Apa yang diperlukan adalah untuk mensimulasikan pengisihan medan yang berbeza dalam tatasusunan.
Andaikan terdapat tatasusunan berikut:
$beforeSort = [
"0" => ["nama" => "Zhang San", "bahasa Inggeris" =>
"1" => ["nama" => "李思", "bahasa Inggeris" =>
"2" => ["nama" => "老王", "bahasa Inggeris" =>
];
Sekarang anda perlu mengikut susunan cina
dalam tatasusunan Jika ia adalah sama, ikut susunan math
Hasil akhir mestilah susunan berikut:< /p>
$afterSort = [
"2" => ["nama" => "老王", "bahasa Inggeris" =>
"0" => ["nama" => "Zhang San", "bahasa Inggeris" =>
"1" => ["nama" => "李思", "bahasa Inggeris" =>
];
Adakah anda mempunyai cara berbeza untuk mencapai ini?
Ini adalah versi yang saya gunakan sendiri Cara menggunakannya:
Cetak hasil:
Anda boleh menukar tatasusunan kepada set dan kemudian memprosesnya. Kaedah isihan yang dilaksanakan menggunakan koleksi PHP mengkhususkan diri dalam pelbagai pengisihan kompleks
<?php
//Sekarang anda perlu mengikut susunan bahasa Cina dalam tatasusunan Jika ia adalah sama, ikut susunan matematik Hasil akhir mestilah tatasusunan berikut:
$beforeSort = [
];
$data_math = array_column($beforeSort, 'math'); );
///Meminjam jawapan dari lelaki di tingkat atas
Untuk menyusun tatasusunan berbilang dimensi, terdapat fungsi rasmi yang boleh melaksanakan array_multisort
$beforeSort = [
];
foreach ($beforeSort as $key => $value) {
}
array_multisort($cina, SORT_ASC, $math, SORT_ASC, $beforeSort);
print_r($beforeSort);