как объединить две захваченные переменные, используя preg_match_all?

Я использую preg_match_all, чтобы захватить URL-адреса и заголовки с другой страницы, и хватать все в порядке, но я не могу их подключить к одному, используя foreach! или есть другой способ вместо foreach?

//gets URLs of href='xxxx' preg_match_all('/a href="([^"]+)" class=l.+?>.+?<\/a>/',$sear,$results); //gets titles of >xxxx</a> preg_match_all('/a href=".+?" class=l.+?>([^"]+)<\/a>/',$sear,$t); 

Ниже код Отображает захваченные URL-адреса

 foreach ($results[1] as $url) { echo "<a href='$url'>$u</a> <br>"; $i++; } 

Ниже код Отображает захватываемые заголовки

  foreach ($t[1] as $title) { echo $title; $i++; } 

но я не знаю, как отображать их (url & title) в одном foreach, поэтому я могу сделать это как

 <a href='URL'>Title</a> 

Объедините два регулярных выражения для захвата обоих элементов в один снимок:

 preg_match_all('/<a href="([^"]+)" class=l.+?>([^<]+)<\/a>/',$sear, $results); var_dump( $results); 

Теперь у вас есть URL и заголовок при захвате групп 1 и 2.

Улучшением этого регулярного выражения будет использование положительного результата для соответствия закрытию </a> , но для простоты ваше текущее решение должно быть прекрасным.

Edit: Я изначально оставил его до OP, чтобы выяснить, как получить правильный результат из результатов. Однако здесь приведен рабочий пример.

 for( $i = 0; $i < count( $results[1]); $i++) echo 'URL: ' . $results[1][$i] . ', Title: ' . $results[2][$i];