wrossmann / merging-iterator

v1.0.0 2022-06-25 23:25 UTC

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);
}

注意和假设

  • 假设提供的迭代器本身是排序好的。
  • 假设提供的比较器将以相同的顺序对元素进行排序。
  • 不执行任何实际的排序,只使用比较器从迭代器的末端选择适当的值。