wrossmann / merging-iterator
v1.0.0
2022-06-25 23:25 UTC
Requires
- php: >=7.0
This package is auto-updated.
Last update: 2024-08-26 04:41:52 UTC
README
接受一个迭代器数组和比较函数,并按顺序迭代所有元素。
安装
composer require wrossmann\merging-iterator
使用
<?php
require('vendor/autoload.php');
use wrossmann\MergingIterator\MergingIterator;
function generate($input) {
foreach( $input as $item ) {
yield $item;
}
}
$iterators = [
generate([0,3,6]),
generate([1,4,7]),
generate([2,5,8])
];
$mi = new MergingIterator($iterators, function($a, $b){return $a-$b;});;
foreach($mi as $key => $item) {
printf("%d\n", $item);
}
注意和假设
- 假设提供的迭代器本身是排序好的。
- 假设提供的比较器将以相同的顺序对元素进行排序。
- 不执行任何实际的排序,只使用比较器从迭代器的末端选择适当的值。