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

Недавно я задал вопрос о preg_match_all с php, и я получил идеальное решение, как ожидалось, но теперь у меня есть несколько разных сценариев

вот моя строка:

 $html = '<p> This is my Home Page.</p><p><span style="line-height: 1.42857;"> {{ type="slider" pagename="slider-1" }} {{ type="banner" pagename="banner-1" }} {{ type="testimonial" pagename="testimonial-1" }} </span></p><p> </p>'; 

Мой код:

 preg_match_all('/{{ type="(.+?)" }}/', $html, $matches, PREG_SET_ORDER); echo "<pre>"; print_r($matches); foreach ($matches as $val) { echo $val[1]; echo "<br/>"; } ?> 

Результат я получаю:

 Array ( [0] => Array ( [0] => {{ type="slider" pagename="slider-1" }} [1] => slider" pagename="slider-1 ) [1] => Array ( [0] => {{ type="banner" pagename="banner-1" }} [1] => banner" pagename="banner-1 ) [2] => Array ( [0] => {{ type="testimonial" pagename="testimonial-1" }} [1] => testimonial" pagename="testimonial-1 ) ) slider" pagename="slider-1 banner" pagename="banner-1 testimonial" pagename="testimonial-1 

Как я могу получить значения для переменной slider и pagename написанной в {{ и }} в строке?