PHP 陣列進階排序:自訂比較器和 匿名函數
php
排序
在 PHP 中,以自訂順序對陣列排序有兩種方式:自訂比較器:實作 Comparable 介面並指定兩個物件的比較規則。匿名函數:建立無名函數作為自訂比較器,用於比較兩個物件的標準。
PHP 陣列進階排序:自訂比較器和匿名函數
在PHP 中,以自訂順序對陣列進行排序需要超出標準排序函數所能提供的功能。自訂比較器和匿名函數提供了比 sort()
、rsort()
等內建函數更靈活的排序機制。
自訂比較器
自訂比較器是一種實作 Comparable
介面的類,它定義瞭如何比較兩個物件。實作 compareTo()
方法,指定哪個物件被認為大於、小於或等於另一個物件。
class CustomComparator implements Comparable { public function compareTo($a, $b): int { if ($a == $b) { return 0; } return $a > $b ? 1 : -1; } }
登入後複製
匿名函數
匿名函數是未命名的函數,可以即時建立並作為參數傳遞。它們常用於建立自訂比較器:
$comparator = function($a, $b) { if ($a == $b) { return 0; } return $a > $b ? 1 : -1; };
登入後複製
實戰案例
#考慮一個包含學生姓名和分數的陣列:
$students = [ ['name' => 'Alice', 'score' => 85], ['name' => 'Bob', 'score' => 90], ['name' => 'Carol', 'score' => 80], ];
登入後複製
#自訂比較器方式
$comparator = new CustomComparator(); usort($students, [$comparator, 'compareTo']);
登入後複製
匿名函數方式
usort($students, function($a, $b) { return $a['score'] <=> $b['score']; });
登入後複製
以上程式碼將以學生分數從小到大對陣列進行排序:
[ ['name' => 'Carol', 'score' => 80], ['name' => 'Alice', 'score' => 85], ['name' => 'Bob', 'score' => 90], ];
登入後複製
以上是PHP 陣列進階排序:自訂比較器和 匿名函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發
