如何找到没有重复值的数组的所有组合?

时间:2015-05-20 15:06:41

标签: php

假设我有一个阵列:

array('a', 'b', 'c', 'd', 'e', 'f');

我需要找到5个字母的所有组合:

array(array('a', 'b', 'c', 'd', 'e'), array('a', 'b', 'c', 'd', 'f'), array('a', 'b', 'c', 'e', 'f'), ...)

我不能有重复的值:

array('a', 'a', 'c', 'c', 'e');

1 个答案:

答案 0 :(得分:0)

您可以使用array_uniquecount的组合。

$array = array('a', 'b', 'c', 'd', 'e', 'f');
$unique = array_unique($array);
if (count($unique) >= 5) {
    // yay... found one
}

根据您正在做的事情,您可以将其作为一个功能并在循环中使用它。

然后,一旦你知道你有多少独特的角色,就会有一种数学方法来计算你可以拥有多少种可能的组合。