Saya memiliki struktur array berikut:
Array
(
[0] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
Apa cara terbaik untuk mengurutkan larik secara bertahap, berdasarkan optionNumber
?
Jadi hasilnya terlihat seperti:
Array
(
[0] => Array
(
[configuration_id] => 8
[id] => 1
[optionNumber] => 1
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[1] => Array
(
[configuration_id] => 9
[id] => 1
[optionNumber] => 2
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
[2] => Array
(
[configuration_id] => 10
[id] => 1
[optionNumber] => 3
[optionActive] => 1
[lastUpdated] => 2010-03-17 15:44:12
)
)
< 0
, ini memberitahu fungsi sortir yanga
harus muncul sebelumnyab
. Jika sudah> 0
makab
harus muncul sebelumnyaa
.Menggunakan
usort
sumber
Saya menggunakan kedua solusi oleh KennyTM dan AJ Quick dan muncul dengan fungsi yang dapat membantu dalam masalah ini untuk banyak kasus seperti menggunakan penyortiran ASC atau DESC atau mempertahankan kunci atau jika Anda memiliki objek sebagai turunan dari array .
Berikut adalah fungsi ini (berfungsi untuk PHP7 dan lebih tinggi karena operator pesawat luar angkasa):
Pemakaian:
Edit
Bagian pertama dapat ditulis ulang menggunakan
uasort()
dan fungsinya akan lebih pendek (berfungsi untuk PHP7 dan lebih tinggi karena operator pesawat luar angkasa):sumber
>
(lebih besar dari) daripada-
(minus) saat membandingkan$a
dan$b
nilai karena saya membandingkan string. Masih berfungsi.Tombol-tombol tersebut dilepas saat menggunakan fungsi seperti di atas. Jika kunci penting, fungsi berikut akan mempertahankannya ... tetapi foreach loop cukup tidak efisien.
Gunakan arsort daripada asort jika Anda ingin dari tinggi ke rendah.
Kredit kode: http://www.firsttube.com/read/sorting-a-multi-dimensional-array-with-php/
sumber
Menggunakan array_multisort (), array_map ()
DEMO
sumber
PHP 5.3+
sumber