<?php
$arr=array(1,2,3,4,6,7,9,10,11,12,13,15,45,46,47,66,67,90);
function sort_num($array)
{
$string="";
foreach ($array as $key => $value)
{
if ($key==0)
{
$string.=$value;
}
else
{
if ($value==$sec_value && $array[$key+1]==$thr_value && $once!="yes")
{
$string.="-";
$once="yes";
}
if ($value==$sec_value && $array[$key+1]!=$thr_value)
{
if ($once=="yes")
{
$string.=$value;
$once="no";
}
elseif ($once=="no")
{
$string.=",".$value;
}
}
elseif ($value!=$sec_value)
{
$string.=",".$value;
}
}
$sec_value=$value+1;
$thr_value=$sec_value+1;
}
return $string;
}
$str=sort_num($arr);
echo $str;
?>
$arr=array(1,2,3,4,6,7,9,10,11,12,13,15,45,46,47,66,67,90);
function sort_num($array)
{
$string="";
foreach ($array as $key => $value)
{
if ($key==0)
{
$string.=$value;
}
else
{
if ($value==$sec_value && $array[$key+1]==$thr_value && $once!="yes")
{
$string.="-";
$once="yes";
}
if ($value==$sec_value && $array[$key+1]!=$thr_value)
{
if ($once=="yes")
{
$string.=$value;
$once="no";
}
elseif ($once=="no")
{
$string.=",".$value;
}
}
elseif ($value!=$sec_value)
{
$string.=",".$value;
}
}
$sec_value=$value+1;
$thr_value=$sec_value+1;
}
return $string;
}
$str=sort_num($arr);
echo $str;
?>
/*
* 前提就是$arr数组已经排序过
*/
$arr=array(1,2,3,4,6,7,9,10,11,12,13,15);
$str = "";
$num = 0;
foreach($arr as $val){
if(empty($str)){
$str = $val;
}else {
if($val != $num + 1){
$str .= "-".$num.",".$val;
}
}
$num = $val;
}
echo $str;/*
output:1-4,6-7,9-13,15
*/
?>