Rumah >pembangunan bahagian belakang >tutorial php >Pengisihan lanjutan tatasusunan PHP: pembanding tersuai dan fungsi tanpa nama
Dalam PHP, terdapat dua cara untuk mengisih tatasusunan dalam susunan tersuai: Pembanding tersuai: laksanakan antara muka Sebanding dan nyatakan peraturan perbandingan kedua-dua objek. Fungsi tanpa nama: Cipta fungsi tanpa nama sebagai pembanding tersuai untuk membandingkan dua objek dengan kriteria.
PHP Isih Tatasusunan Terperinci: Pembanding Tersuai dan Fungsi Tanpa Nama
Dalam PHP, menyusun tatasusunan dalam susunan tersuai memerlukan kefungsian melebihi apa yang boleh disediakan oleh fungsi pengisihan standard. Pembanding tersuai dan fungsi tanpa nama menyediakan mekanisme pengisihan yang lebih fleksibel daripada fungsi terbina dalam seperti sort()
dan rsort()
. sort()
、rsort()
等内置函数更灵活的排序机制。
自定义比较器
自定义比较器是一种实现 Comparable
接口的类,它定义了如何比较两个对象。实现 compareTo()
Pembanding Tersuai
Pembanding tersuai ialah kelas yang melaksanakan antara mukaComparable
, yang mentakrifkan cara membandingkan dua objek. Laksanakan kaedah compareTo()
untuk menentukan objek yang dianggap lebih besar, kurang daripada atau sama dengan objek lain. class CustomComparator implements Comparable { public function compareTo($a, $b): int { if ($a == $b) { return 0; } return $a > $b ? 1 : -1; } }
Fungsi Tanpa Nama
Fungsi tanpa nama ialah fungsi tanpa nama yang boleh dibuat dengan pantas dan diluluskan sebagai hujah. Mereka sering digunakan untuk membuat pembanding tersuai:$comparator = function($a, $b) { if ($a == $b) { return 0; } return $a > $b ? 1 : -1; };
Contoh praktikal
Pertimbangkan tatasusunan yang mengandungi nama dan markah pelajar:$students = [ ['name' => 'Alice', 'score' => 85], ['name' => 'Bob', 'score' => 90], ['name' => 'Carol', 'score' => 80], ];Pendekatan pembanding tersuai
rreee
🎜🎜🎜🎜🎜 kod akan susun tatasusunan mengikut markah pelajar daripada terkecil kepada terbesar: 🎜$comparator = new CustomComparator(); usort($students, [$comparator, 'compareTo']);
Atas ialah kandungan terperinci Pengisihan lanjutan tatasusunan PHP: pembanding tersuai dan fungsi tanpa nama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!