Analizar a través de una cadena php y reemplazar subcadenas

Tengo una cadena, en PHP y la cadena tiene apariciones del patrón%%abc%%(some substring)%%xyz%%

Hay múltiples apariciones de tales subcadenas dentro de la cadena maestra. Cada una de estas ocurrencias debe ser reemplazada por una cadena dentro de una matrizarray('substring1','substring2','substring3','substring4') dependiendo de la respuesta de unfunction() que devuelve un número entero entre 1 a 4.

No soy capaz de encontrar una manera eficiente de hacer esto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta