Ciao ragazzi mi sto perdendo in una cavolata ma non riesco a risolverla...

Di seguito vi posto il codice che sto usando, quest'ultimo dovrebbe cercare nella variabile titolo i caratteri che sono definiti nell'array "caratteri" e se esistono sostituirli con uno spazio... solo che non funziona benissimo, mi modifica solo se trova il primo indice dell'array e sempre con il primo indice mi taglia la frase quindi se ho Festival d'autunno ritorna festival d

Come posso fare? grazie a tutti
codice:
while($row=mysql_fetch_array($result)){
	$titolo = $row['titolo'];
	$caratteri = array("'","_","-");
	$max = count($caratteri);
		for($i=0; $i<$max; $i++){
			$dw_titolo = str_replace($caratteri[$i]," ",$titolo);
					
		}
		/*$dw_titolo = str_replace("'", " ",$titolo);*/
		echo"<option value='".$dw_titolo."'>".$titolo."</option>";
}