現在有這樣一個數組:$a = [1,2,3,4,5];我想通過某種算法得到一下的結果:1,21,31,41,52,32,42,53,43,54,5也就是兩兩一組,另外還有可能三個一組這樣怎么算呢?有大神知道嗎?
2 回答

小唯快跑啊
TA貢獻1863條經驗 獲得超2個贊
支持任意數量組合,其中combine($arr, 3)方法中的3表示以3個為1組。
這些組合中去除了會出現重復數字的組合。
<?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));
- 2 回答
- 0 關注
- 731 瀏覽
添加回答
舉報
0/150
提交
取消