Apabila bekerja dengan tatasusunan berbilang dimensi, mungkin perlu mengisih tatasusunan berdasarkan nilai kunci tertentu. Sebagai contoh, jika anda mempunyai tatasusunan yang mengandungi senarai imej, anda mungkin mahu mengisihnya mengikut tarikh atau saiznya.
Untuk mengisih tatasusunan mengikut satu kunci, anda boleh menggunakan fungsi usort(). Fungsi ini mengambil dua parameter: tatasusunan untuk diisih dan fungsi pengisihan. Fungsi pengisihan mesti mengambil dua parameter, yang mewakili dua elemen untuk dibandingkan.
Sebagai contoh, katakan kita mempunyai tatasusunan berikut dan kita mahu mengisihnya mengikut nilai kekunci "pesanan":
Array ( [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 3 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Ready [order] => 1 ) )
Untuk mengisih tatasusunan ini, kita boleh menggunakan fungsi pengisihan berikut:
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; }
Kemudian, kita boleh menghantar fungsi ini kepada fungsi usort():
usort($myArray, 'sortByOrder');
Selepas mengisih, tatasusunan akan disusun mengikut nilai kekunci "pesanan":
Array ( [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Ready [order] => 1 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 3 ) )
Untuk mengisih tatasusunan dengan berbilang kekunci, anda boleh menggunakan pendekatan berikut:
Sebagai contoh, katakan kita mempunyai tatasusunan berikut dan kita mahu mengisihnya mengikut nilai kekunci "pesanan", dan kemudian dengan nilai kekunci "tajuk":
Array ( [0] => Array ( [hashtag] => a7e87329b5eab8578f4f1098a152d6f4 [title] => Flower [order] => 1 ) [1] => Array ( [hashtag] => b24ce0cd392a5b0b8dedc66c25213594 [title] => Free [order] => 2 ) [2] => Array ( [hashtag] => e7d31fc0602fb2ede144d18cdffd816b [title] => Free [order] => 2 ) [3] => Array ( [hashtag] => c1ede105cf8a54bbfb9f06542a9971bb [title] => Ready [order] => 3 ) )
Untuk mengisih tatasusunan ini, kita boleh menggunakan fungsi pengisihan berikut:
Atas ialah kandungan terperinci Bagaimanakah saya boleh mengisih tatasusunan berbilang dimensi dalam PHP dengan satu atau lebih kekunci?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!