鍍金池/ 問答/PHP/ php 數(shù)組的處理,感覺很難

php 數(shù)組的處理,感覺很難

現(xiàn)在有這樣一個數(shù)組:

$a = [1,2,3,4,5];

我想通過某種算法得到一下的結(jié)果:

1,2
1,3
1,4
1,5
2,3
2,4
2,5
3,4
3,5
4,5

也就是兩兩一組,另外還有可能三個一組
這樣怎么算呢?
有大神知道嗎?

回答
編輯回答
憶往昔

支持任意數(shù)量組合,其中combine($arr, 3)方法中的3表示以3個為1組。
這些組合中去除了會出現(xiàn)重復(fù)數(shù)字的組合。

<?php
$arr = [1, 2, 3, 4, 5];

function combine($arr, $length) {
    $result = [];
    _combine($arr, $length, 0, [], $result);
    return $result;
}

function _combine($arr, $length, $start, $path, &$result) {
    if(count($path)==$length) {
        return $result[] = $path;
    }
    for ($i=$start; $i<count($arr); $i++) {
        if($i==$start || $arr[$i]!=$arr[$i-1]) {
            $path[]=$arr[$i];
            _combine($arr, $length, $i+1, $path, $result);
            array_pop($path);
        }
    } 
}

var_dump(combine($arr, 3));

?>
2018年1月25日 13:06
編輯回答
失魂人

這波操作厲害了

2018年5月7日 14:05
編輯回答
選擇
$a = [1,2,3,4,5];

foreach($a as $key => $value)
{
    for($i = $key + 1; $i < count($a); $i++)
    {
        echo $value.",".$a[$i]."\n";
    }
}

三個一組的話就判斷在什么情況下 key + 2

2018年6月11日 03:37