senza array ho fatto così:
$nome=str_replace("'","''",$nome);
$nome=str_replace("\"","\"\"",$nome);

e mi funziona, forse semanticamente è più corretto il tuo.

Vorrei fare un'altra domanda:

Per scandire un'array e trovare una determinata parola nell'array è possibile senza list() ed each() ?