在PHP中使用迭代器進行數據過濾可以通過自定義一個繼承自 FilterIterator
類的子類來實現。下面是一個簡單的例子:
class MyFilterIterator extends FilterIterator {
public function accept() {
$current = $this->current();
// 這里可以編寫過濾邏輯,返回 true 表示保留該數據,返回 false 表示過濾該數據
return $current % 2 == 0; // 只保留偶數
}
}
$data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
$iterator = new ArrayIterator($data);
$filteredIterator = new MyFilterIterator($iterator);
foreach ($filteredIterator as $value) {
echo $value . PHP_EOL;
}
在上面的例子中,我們自定義了一個 MyFilterIterator
類,繼承自 FilterIterator
,并在 accept
方法中編寫了過濾邏輯。然后我們將原始數據數組傳入 ArrayIterator
來創建一個迭代器,再將這個迭代器傳入我們自定義的 MyFilterIterator
中,得到一個過濾后的迭代器。最后使用 foreach 循環遍歷過濾后的迭代器,只輸出偶數。