穷举所有顺序,找到第一个升序的
<?php
$count=8;
$array=range(0,$count-1,1);
shuffle($array);
$c=count($array);
$g=[[[],$array]];
function rmkey(&$array, $key) {
unset($array[$key]);
$temp = [];
foreach ($array as $value) {
$temp[] = $value;
}
$array = [];
$array = $temp;
}
for($a=0;$a<$c;$a++){
$temp=[];
for($b=0;$b<count($g);$b++){
$k=$g[$b];
for($d=0;$d<count($k[1]);$d++){
$rr=$k[0];
$pp=$k[1];
$rr[]=$k[1][$d];
rmkey($pp,$d);
$temp[]=[$rr,$pp];
}
}
$g=$temp;
}
for($t=0;$t<count($g);$t++){
$che=0;
for($i=0;$i<$c-1;$i++){
if($g[$t][0][$i]>$g[$t][0][$i+1]){
$che=1;
}
}
if($che==0){
$array=$g[$t][0];
break;
}
}
print_r($array);