Isih tatasusunan objek berdasarkan sifat tertentu
P粉426780515
2023-08-21 15:57:31
<p>Bagaimanakah saya boleh mengisih tatasusunan objek ini mengikut medan seperti <kod>nama</kod> atau <kod>kira</kod>? </p>
<pre class="brush:php;toolbar:false;">Array
(
[0] => Objek stdClass
(
[ID] =>
[nama] =>
[kira] => 420
)
[1] => Objek stdClass
(
[ID] =>
[nama] =>
[kira] =>
)
[2] => Objek stdClass
(
[ID] =>
[nama] =>
[kira] => 4354
)
....</pra>
<p><br /></p>
Ini adalah cara yang lebih baik untuk menggunakan penutupan
Sila ambil perhatian bahawa ini tiada dalam dokumentasi PHP, tetapi jika anda menggunakan versi 5.3+, penutupan disokong dan anda boleh menyediakan parameter boleh dipanggil.
Menggunakan usort, berikut ialah contoh yang disesuaikan daripada manual:
Anda juga boleh menggunakan mana-mana boleh dipanggil sebagai parameter kedua. Berikut adalah beberapa contoh:
Gunakan fungsi tanpa nama (setakat PHP 5.3)
Digunakan di dalam kelas
Gunakan fungsi anak panah (bermula dengan PHP 7.4)
Selain itu, jika anda ingin membandingkan nilai berangka,
fn($a, $b) => $a->count - $b->count
sebagai fungsi "perbandingan" harus diselesaikan masalahnya, Sebagai alternatif, jika anda ingin melakukan perkara yang sama dengan cara lain, bermula dengan PHP 7 anda boleh menggunakan Pengendali kapal angkasafn($a, $b) => $a->count - $b->count
作为“比较”函数应该可以解决问题,或者,如果你想以另一种方式做同样的事情,从PHP 7开始你可以使用太空船操作符,像这样:fn($a, $b) => $a->count <=> $b->count
, seperti ini:fn($a, $b) => $a->count <=> $ b ->kira
.