glagola / cross-product-iterator
无限数组的交叉积,无递归
1.0.1
2018-01-16 13:41 UTC
Requires
- php: >=5.1.0
This package is not auto-updated.
Last update: 2024-09-18 02:21:36 UTC
README
至少需要 5.1 版本的 PHP
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require "glagola/cross-product-iterator" "*"
或
"glagola/cross-product-iterator" : "*"
将以下内容添加到您应用程序的 composer.json 文件的 require 部分。
示例
代码
<?php use Glagola\CrossProductIterator; function aa() { yield 'x1'; yield 'x2'; yield 'x3'; } $iterator = new CrossProductIterator([ aa(), new ArrayIterator(['y1']), new ArrayIterator(['z1', 'z2', 'z3']), new ArrayIterator(['f1', 'f2', 'f3']), ]); foreach ($iterator as $items) { echo "['", implode("', '", $items), "']", PHP_EOL; }
输出
['x1', 'y1', 'z1', 'f1']
['x1', 'y1', 'z1', 'f2']
['x1', 'y1', 'z1', 'f3']
['x1', 'y1', 'z2', 'f1']
['x1', 'y1', 'z2', 'f2']
['x1', 'y1', 'z2', 'f3']
['x1', 'y1', 'z3', 'f1']
['x1', 'y1', 'z3', 'f2']
['x1', 'y1', 'z3', 'f3']
['x2', 'y1', 'z1', 'f1']
['x2', 'y1', 'z1', 'f2']
['x2', 'y1', 'z1', 'f3']
['x2', 'y1', 'z2', 'f1']
['x2', 'y1', 'z2', 'f2']
['x2', 'y1', 'z2', 'f3']
['x2', 'y1', 'z3', 'f1']
['x2', 'y1', 'z3', 'f2']
['x2', 'y1', 'z3', 'f3']
['x3', 'y1', 'z1', 'f1']
['x3', 'y1', 'z1', 'f2']
['x3', 'y1', 'z1', 'f3']
['x3', 'y1', 'z2', 'f1']
['x3', 'y1', 'z2', 'f2']
['x3', 'y1', 'z2', 'f3']
['x3', 'y1', 'z3', 'f1']
['x3', 'y1', 'z3', 'f2']
['x3', 'y1', 'z3', 'f3']