比如我有0123456789,我现在需要这10个数字两两组合生成新的数字,我现在知道用两个for循环就可以,类似这样:
$arr=array('0','1','2','3','4','5','6','7','8','9');
for($i=0;$i {
for($j=0;$j {
echo($arr[i].$arr[$j].'
');
}
}
但是这样生成出来的是 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 ........
我不想要这样的先取第一个数字0然后挨个和其他数字组合,我想得到的结果看起来好像是无序的,比如01 12 23 34 45 56 67 78 89 90 02 24 46 68 80 .............
当然这个排列我只是举个例子,只要最后能全部组合都实现,而且不让人一眼就看出循环生成的就行,另外我不要先生成组合然后再随机打乱的那种
求助求助,哪位知道怎么实现的大神指点一下,不胜感激!
$arr=array('0','1','2','3','4','5','6','7','8','9');
这个写成乱序
另外两层循环可以用两个乱序的数组去凑,就看不出来了。
不是很懂php,我是学java的 不过想了下 脑海里有个方案 我跟你说一下 就是写个 数组,里边对应0-9,然后创建两个布尔类型的数组,然后分别对应int数组
,做两层循环,第一层取个随机数,然后把对应的布尔开关关掉,第二层再取把另一个对应的布尔开关关掉,然后外层循环每次都重置下内层循环对应的
布尔开关 这样差不多就可以生成你要的集合了, 其实我觉得先生成了 再放进set集合多简单。。。