我有以下多维数组称为$existing_combinations
比较阵列,直到我有一个独特的阵列
Array
(
[0] => Array
(
[1] => 6
[2] => 7
[3] => 9
)
[1] => Array
(
[1] => 1
[2] => 21
[3] => 9
)
[2] => Array
(
[1] => 1
[2] => 7
[3] => 9
)
)
然后我生成具有相同的一组值的组合的新阵列($new_combination
)。例如:
Array
(
[1] => 6
[2] => 21
[3] => 9
)
然后我测试是否存在于$existing_combinations
$new_combination
与希望,我将在$new_combination
与一个独特的组合结束下列操作:
foreach($existing_combinations as $key => $combination){
while($new_combination == $combination){
$new_combination = generateNewCombination();
}
}
的问题是,如果$new_combination
匹配的数组那不是在索引0,那么当我产生一个新的组合时,我有可能匹配$combination
已经被测试过(并且不会再被测试)。
对不起,如果这是一个简单的,但我很难想出如何确保$new_combination
将永远最终独特。
任何想法?
感谢
这就像它生成和检查一个新镜头中的一个新的唯一数组一样紧凑。如果我们生成两位数的三元组,并且可能将新的组合添加到现有数组中,那么在1000000次迭代耗尽所有独特组合后,“while”将导致无限循环。在实践中可能永远不会成为问题,但我不知道这里的用例是什么。 –
您编写的代码仅显示测试新值的条件,但不显示make的算法。别的地方在哪里? – splash58
我只写过关于验证新组合是否是唯一的。 –