Para encontrar todas las coincidencias en el texto usa preg_match_all
http://php.net/manual/es/function.preg-match-all.php
Lee bien el manual que no es dificil de usar pero tiene su truco.
p.s. Yo trataria de quitar el ampersand sin la chapuza porque al tener que usar un array en preg_match_all te tocaria hacer lo mismo con todos los elementos del arreglo y es una solución un poco "sucia" computacionalmente hablando.