在 PHP 中,从数组创建元素组合是一项常见任务。本文探讨了一种从给定数组生成特定长度组合的解决方案,确保忽略元素的顺序。
为了解决此问题,采用了通过 Combinations 类实现的迭代方法。此类充当迭代器,允许高效遍历和检索组合。
__construct 方法通过接受数组或字符串 s 以及所需的组合长度 k 来初始化该类。它初始化内部变量并将初始位置设置为零。
_next 方法负责前进到下一个组合。它以相反的顺序迭代元素,增加计数并相应地更新组合。
key、current、next、rewind 和 valid 方法满足 Iterator 接口要求,实现组合的无缝迭代。
提供了一个示例用法,演示了如何从数字数组创建 Combinations 对象:
$array = [1,2,3,4,5,6,7]; $combinations = new Combinations($array, 5);
迭代$combinations 对象将产生每个唯一的组合作为字符串或数组,具体取决于输入类型:
foreach($combinations as $combination) { echo $combination . ' '; }
输出:
12345 12346 12347 12356 12357 12367 12456 12457 12467 12567 13456 13457 13467 13567 14567 23456 23457 23467 23567 24567 34567
以上是如何从 PHP 数组生成特定长度的所有唯一组合?的详细内容。更多信息请关注PHP中文网其他相关文章!