Bueno hice una función un poco limitada pero que es exactamente lo que pides acerca del número 254878799656995 jaja
Ahí te va!
Código PHP:
<?
function separar($cadena,$limite=0,$veces=0) {
$datos = array();
for($i=1;$i<=$veces;$i++){
$sub = str_replace($datos,'',$cadena);
$datos[$i] = intval(substr($sub,0,$limite));
$limite++;
}
return $datos;
}
$numero = '254878799656995';
$separar = separar($numero,4,3);
echo '<pre>';
echo var_dump($separar);
echo '</pre>';
//
// DEVOLVERÍA:
//
//array(3) {
//
// [1]=>
// int(2548)
// [2]=>
// int(78799)
// [3]=>
// int(656995)
//
// }
//
?>
Espero que te pueda servir, en cuanto a la función es fácil utilizarla...
separar($numero,4,3);
El numero 4 es el numero de separación con la cual comenzará y desoués aumentará hasta 5, 6, 7,... (depende del tercer valor 3)
Asi que si analizamos el codigo, la funcion comenzará separando 4 caracteres, luego aumentara a 5 y luego a 6 y ahi se parará puesto que existe el número 3 (veces) en el tercer atributo.
Espero que te funcione.