<?php

$numbers = array(1,3,2,23,24,25,26,8);

$result = array();

$sorted = $numbers;
sort($sorted);

$current = null;
foreach ($sorted as $v) {
    if (is_null($current)) {
        $current = array($v, $v);
    } else {
        if ($current[1] + 1 == $v) {
            $current[1] = $v;
        } else {
            $result[] = $current;
            $current = array($v, $v);
        }
    }
}

$result[] = $current;

$arranged = array();

foreach ($numbers as $v) {
    foreach ($result as $k => $r) {
        if ($v >= $r[0] && $v <= $r[1]) {
            $arranged[] = $r;
            unset($result[$k]);
            break;
        }
    }
}

var_dump($arranged);