Hai provato a dare un'occhiata al manuale ?
Sembrerebbe di no, perchè la sintassi che usi nella preg_replace() è errata e dovrebbe anche darti un errore.
Fra l'altro, una volta sistemata la sintassi, puoi evitare di scorrere il ciclo e dare in pasto alla funzione direttamente l'array (anche questo è puntualmente riportato nel manuale)