在 PHP 中,Set
集合并不是一個內置的數據結構。但是,你可以使用數組(Array)來模擬集合的行為,并利用 PHP 提供的排序函數來實現自定義排序。
以下是一個使用數組實現 Set
集合的例子,并包含一個自定義排序功能:
<?php
class CustomSet {
private $elements;
public function __construct() {
$this->elements = array();
}
public function add($element) {
if (!$this->contains($element)) {
$this->elements[] = $element;
}
}
public function remove($element) {
$index = array_search($element, $this->elements);
if ($index !== false) {
unset($this->elements[$index]);
}
}
public function contains($element) {
return in_array($element, $this->elements);
}
public function customSort($sortFunction) {
usort($this->elements, $sortFunction);
}
public function getElements() {
return $this->elements;
}
}
// 自定義排序規則
function customCompare($a, $b) {
return strlen($a) - strlen($b); // 按字符串長度排序
}
$set = new CustomSet();
$set->add("apple");
$set->add("banana");
$set->add("kiwi");
$set->add("grape");
$set->customSort("customCompare");
print_r($set->getElements());
?>
在這個例子中,我們創建了一個名為 CustomSet
的類,它有 add
、remove
、contains
和 customSort
方法。customSort
方法接受一個排序函數作為參數,然后使用 PHP 的 usort
函數對集合元素進行排序。
我們定義了一個名為 customCompare
的自定義排序函數,該函數按照字符串長度對元素進行排序。最后,我們將這個自定義排序函數傳遞給 customSort
方法,以按照自定義規則對集合元素進行排序。