项目有个需求:用户选择数字后,按规律性排序
$pp='1,2,3,5,7,8,9,10,12,13,15,16,17,19,20,21';
$st=explode(',', $pp);
$i=$st[0];
$j='';
$m='';
foreach ($st as $key=>$var){
if ($i==$var) {
continue;
}
$n=$key-1;
if (($var-$st[$n])==1) {
$m=$var;
continue;
}
if ($i!=$st[$n]){
$j.=$i.'-'.$st[$n].',';
}else{
$j.=$i.',';
}
$i=$var;
}
if ($i>$m){
$j.=$i;
}else{
$j.=$i.'-'.$m;
}
echo $j;
输出结果: 1-3,5,7-10,12-13,15-17,19-21