为了账号安全,请及时绑定邮箱和手机立即绑定

php 数组的处理,感觉很难

php 数组的处理,感觉很难

PHP
哆啦的时光机 2018-09-08 15:01:50
现在有这样一个数组:$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));



查看完整回答
反对 回复 2018-09-09
  • 2 回答
  • 0 关注
  • 700 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信