-4

我有一组数字S = [1,2,3,4,5,6];,我想在其中制作所有可能的配对,但要知道这对不能重复。

我用过这个:-

$pairs = array('1','2','3','4','5','6');
$count = count($pairs);
$array = array();
for($i = 0;$i <= $count; $i++){
    for($j = 1; $j < $count; $j++){
        if($i < $j){
            $array[$i][] = $pairs[$i].','.$pairs[$j];
        }
    }
}

我想要这样的东西:-

S = [1,2,3,4,5,6];

[1,2],[1,3],[1,4],[1,5],[1,6]
[2,3],[2,4],[2,5],[2,6]
[3,4],[3,5],[3,6]
[4,5],[4,6]
[5,6]

如果有人有更好的建议,请尽快回复。

4

1 回答 1

0

在你的数组上构建一个双嵌套foreach循环,构建你的对并检查你是否已经得到它们。

伪代码:

pairs = []
foreach(entry in array) {
    foreach(entry2 in array) {
        pair = [entry, entry2]
        if(!alreadyexists(pair in pairs) {
            add(pair to pairs)
        }
    }
}
havefun()

顺便说一句:如果你自己尝试一些东西,你不会受伤,这个问题是相当微不足道的。

于 2013-04-18T07:01:48.427 回答