php 数组的处理,感觉很难

现在有这样一个数组:

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

我想通过某种算法得到一下的结果:

1,21,31,41,52,32,42,53,43,54,5

也就是两两一组,另外还有可能三个一组
这样怎么算呢?
有大神知道吗?



哆啦的时光机
浏览 701回答 2
2回答

小唯快跑啊

支持任意数量组合,其中combine($arr, 3)方法中的3表示以3个为1组。这些组合中去除了会出现重复数字的组合。<?php$arr&nbsp;=&nbsp;[1,&nbsp;2,&nbsp;3,&nbsp;4,&nbsp;5];function&nbsp;combine($arr,&nbsp;$length)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;[]; &nbsp;&nbsp;&nbsp;&nbsp;_combine($arr,&nbsp;$length,&nbsp;0,&nbsp;[],&nbsp;$result);&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$result; }function&nbsp;_combine($arr,&nbsp;$length,&nbsp;$start,&nbsp;$path,&nbsp;&$result)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;if(count($path)==$length)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$result[]&nbsp;=&nbsp;$path; &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;($i=$start;&nbsp;$i<count($arr);&nbsp;$i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($i==$start&nbsp;||&nbsp;$arr[$i]!=$arr[$i-1])&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$path[]=$arr[$i]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_combine($arr,&nbsp;$length,&nbsp;$i+1,&nbsp;$path,&nbsp;$result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array_pop($path); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; } var_dump(combine($arr,&nbsp;3));
打开App,查看更多内容
随时随地看视频慕课网APP