php gmp разбить строку на числа не больше указанного числа - очень большие числа произвольной величины

предлагаю решение в таком виде ( решение без gmp доступно здесь = http://fkn.ktu10.com/?q=node/4235):

 /*
	ВНИМАНИЕ: так как для данной функции подразумевается
	возможность работы с очень большими числами, 
	то в ней для арифметических операций будет использовать 
	стадартное php-расширение для работы с такими вот большими числами -
	php gmp
	
	данная функция принимает строку $str
	из одних цифр и разбивает её на блоки - числа, 
	каждое из которых не больше заданного $n
	(подразумевается ,что $n должно быть достаточно большим-
	то есть, вообще говоря больше чем любая цифра - т.е. >9)
	
	возвращаемый массив - содержит строки 
	- дабы сохранить совместимость с внешним кодом*/
	function get_blocks_array($str, $n)
	{
		$rarr = array();// массив чисел (результат)
		$arr = str_to_arr($str);
		$block = '';// строка для хранения очередного блока(числа)
		foreach ($arr as $value)
		{
			$block .= $value; // приклеиваем очередной символ
			if (gmp_cmp($block, $n) > 0) {
				$block = gmp_div_q($block, 10);// тогда убираем один разряд = $value (делим без остатка)
				$rarr[] = gmp_strval($block); // добавляем число в массив (в виде строки) 
				$block = ''; // обнуляем блок
				$block .= $value;// добавляем последний элемент, который не вошёл в предыдущий блок
			}			
 		}
		if ($block != '') // если что-то осталось
			$rarr[] = $block;
		
		
		// можно вывести на экран, то что получилось
		echo "<br> строка  = ".$str;
		echo "<br> n  = ".$n;
		foreach($rarr as $val) 
		{
		  echo '<br>';
		  echo '<br>'.$val;
		}
		
		return $rarr;
	}