Извлечение выходного массива регулярных выражений из другого массива

#php #regex

#php #регулярное выражение

Вопрос:

Итак, я пытаюсь извлечь телефонные номера из текстового файла, каждая строка текстового файла представляет один профиль пользователя. Итак, код, который у меня есть до сих пор, открывает текстовый файл, разделяет каждую строку с помощью массива, а затем использует регулярное выражение для поиска телефонных номеров. Мой вопрос в том, как мне разбить результаты регулярных выражений, чтобы я мог сохранить каждое число в переменной? Пока мой код просто показывает мне второй массив, мне нужно что-то вроде второго foreach, поскольку каждая строка пользовательских данных может содержать от 1 до 6 телефонных номеров.

  <?php
        $array = explode("n", file_get_contents('datasamdata_000030.txt'));
        foreach ($array as $string){
        echo $string."<br><br><br>";
        preg_match_all('/b[0-9]{3}s*[-]?s*[0-9]{3}s*[-]?s*[0-9]{4}b/',$string,$matches);
        echo '<pre>';
        print_r($matches[0]);
        echo '</pre>';
    }
 

Комментарии:

1. просто вставьте второй foreach во внешний. Какова ваша конечная цель?. Итак, вы хотите создать шесть переменных, если в одной строке найдено 6 телефонных номеров?

2. Да, это было бы правильно, когда я вкладываю другой foreach, я просто получаю кучу ошибок. Позвольте мне попробовать и опубликовать код, чтобы вы могли видеть.

Ответ №1:

Решение для добавления второго foreach и корректного отображения данных..

 foreach($matches[0] as $matched) {
        echo $matched;
}