Добрый вечер. У меня есть файл (file.txt). В этом файле хранятся данные, вида: Код (Text): Group key : value key2 : value GroupTwo key : value key2 : value и.т.д. Чтобы разобрать эти данные, я использую регулярное выражение ([a-z]\n(^Data.*?)\n(^Class.+)), но у меня проблема, как правильно написать цикл foreach, чтобы вывести группы в массив? Пытался так: PHP: foreach ($regex as $list) { $arr = $list; } Помогите, пожалуйста.
этот regex относится к данному тексту ? что-то не вижу дата и класса. --- Добавлено --- итак, 1 минута и в голове есть полный код. Но интересно в каком месте кода твоего, появилась проблема ?
$arr выводит "ничего", а точнее NULL. Если пробовать без цикла, то выводится все в один сплошной массив.
Регулярные выражения нужно использовать только по большой необходимости. PHP: <?php $params = file('file.txt', FILE_SKIP_EMPTY_LINES); $arr = array(); $key = 0; foreach($params as $line) { if(strpos($line, ':') === false) { $key = trim($line); } else { list($k, $v) = explode(':', $line); $arr[$key][trim($k)] = trim($v); } } echo '<pre>'; print_r($arr); ?>