как заставить preg_match_all вернуть все вхождения?

rasfast

Новичок
как заставить preg_match_all вернуть все вхождения?

Доброго времени суток!

Написал такое рег. выражение:
PHP:
<?php
	$matches = array();
	$string = 'a123456b';
	preg_match_all('/a(\d)+b/', $string, $matches);
	echo '<pre>';
	print_r($matches);
?>
скрипт возвращает это
PHP:
Array
(
    [0] => Array
        (
            [0] => a123456b
        )

    [1] => Array
        (
            [0] => 6
        )

)
Мне же надо, чтобы скрипт вернул каждую цифру в отдельности, т.е. что-то типа этого:
PHP:
Array
(
    [0] => Array
        (
            [0] => a123456b
        )

    [1] => Array
        (
            [0] => 1
        )

    [2] => Array
        (
            [0] => 2
        )

...
    [6] => Array
        (
            [0] => 6
        )
)
или этого
PHP:
Array
(
    [0] => Array
        (
            [0] => a123456b
        )

    [1] => Array
        (
            [0] => Array
              (
                   [0] => 1,
                   [1] => 2,
                   ...
                   [5] => 6,
              )
        )
)
Надеюсь, идея понятна: надо разобрать выражение и получить каждую его часть (в данном примере - цифру), а не только последнюю. Количество частей (цифр) заранее не известно.
 

moxnatiy

Новичок
С preg_match_all не получится.
Заматч все цыфры (\d+) а с результатом просто работай как со строкой.
 
Сверху