У меня есть шаблон
ab 23 cde 25 ... and so on
Могу ли я захватить вышеуказанный шаблон как
array( [patterns] => array( [0] => array( [payer] => 'ab' [amt] => 23 ) [1] => array( [payer] => 'cde' [amt] => 25 ) ) )
Возможно ли это?
Для этого можно использовать preg_match_all:
preg_match_all
$str = 'ab 23 cde 25'; preg_match_all('/(\w+)\s+(\d+)/',$str,$matches); $result = array(); for($i=0;$i<count($matches[0]);$i++) { $result[] = array('payer' => $matches[1][$i], 'amt' => $matches[2][$i]); }
Рабочая ссылка
(?:'|.)(\w+)(?:'|$)
Сформируйте регулярное выражение для соответствия каждому элементу в вашем массиве (\w+\s+\d+). Соберите их все (это должно дать вам куски вроде ab 23).
\w+\s+\d+
ab 23
Затем для каждого из этих элементов разбейте пробел и втисните в свой большой массив как [payer], [amt].