試試這個:
$array = array(
445,446,661,662,1978,1979,2014,2015,2016,2017,2018,2019,2020,2021,
2021,2022,2673,2674
);
$result = array();
$tmp = array();
for ($i = 0; $i < count($array); $i++) {
if (array_key_exists($i + 1, $array) && ($array[$i + 1]) - $array[$i] == 1) {
$tmp[] = $array[$i];
} else {
$tmp[] = $array[$i];
$result[] = $tmp;
$tmp = array();
}
}
var_dump($result);
輸出:
array
0 =>
array
0 => int 445
1 => int 446
1 =>
array
0 => int 661
1 => int 662
2 =>
array
0 => int 1978
1 => int 1979
3 =>
array
0 => int 2014
1 => int 2015
2 => int 2016
3 => int 2017
4 => int 2018
5 => int 2019
6 => int 2020
7 => int 2021
4 =>
array
0 => int 2021
1 => int 2022
5 =>
array
0 => int 2673
1 => int 2674
注:
陣列中有兩個2021值。也許你可以使用array_unique
來獲得唯一的值。
只需添加'sort($ array);'你的函數只能使用有序數組 – 2014-12-03 12:11:34
美麗,完美無缺;而且最終數組會有所有獨特的條目 – subZero 2014-12-03 12:43:44
不客氣。我希望你可以使用'array_unique'和'sort'函數。 – vaso123 2014-12-03 13:30:47