我試圖找出數組中存在的數字的頁範圍。我確實試圖搜索谷歌,但我只發現無關的帖子/頁面。從數組數組中生成字符串範圍(1-10,13,16,17-25 ..等)的算法
我一直在努力的代碼是:
$numbers = array(1,3,2,4,5,6,7,8,9,11,10,15,14,13,12,16,17,18,19,20,22);
function get_number_ranges($numbers)
{
$last = null;
foreach ($numbers as $number) {
if (is_null($last)) {
$string = $number;
$last = $number;
} elseif ($last + 1 != $number) {
$string .= '-' . $last . ', ' . $number;
$last = $number;
} else {
$last = $number;
}
}
if ($last == $number) {
$string .= '-' . $number;
}
return $string;
}
和產生
1-1, 3-3, 2-2, 4-9, 11-11, 10-10, 15-15, 14-14, 13-13, 12-12, 16-20, 22-22
我不希望它顯示重複的號碼,所以我希望它看起來像這樣:
1, 3, 2, 4-9, 11, 10, 15, 14, 13, 12, 16-20, 22
這是我可以代表頁面範圍時,存儲關於文檔的歷史。
我確定這對於some1來說是個不錯的選擇,任何幫助都會大受歡迎!
由於按預期工作:) – mic