Не зная структуры вашей строки или регулярного выражения, это всего лишь думаю , но похоже, что вы, возможно, захотите использовать PREG_SET_ORDER
для создания группы массивов $matches
по совпадениям вместо значения по умолчанию PREG_PATTERN_ORDER
, которое группирует результирующий массив на основе групп захвата в шаблоне (в документации есть примеры).
preg_match_all($pattern, $subject, $matches, PREG_SET_ORDER);
foreach ($matches as $match) {
// Get rid of $match[0] (the overall match)
unset($match[0]);
// Write the captured groups to the CSV file
fputcsv($fp, $match);
}
Если это не то, что вам нужно, вам нужна дополнительная информация, например, структура массива $matches
, которую вы хотите, и / или вход ($subject
) и ожидаемый результат (пример CSV-файл).