現在有這樣一個數組:$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
提交
取消
