man kann, aber nur in grenzsituationen. ich habe vor einiger zeit eine größere intranet-datenbankverwalötung für adressdaten geschrieben. dazu musste ich auch eine schnittstelle schreiben, um komplett alle daten der datenbankl in ein array zu lesen (unelegant, war aber nötig). es handelte sich um ca 15.000 datensätze mit jeweils ca 25 feldern.
das problem bei mysql_fetch_array ist, daß im vergleich zu mysql_fetch_row die doppelte menge an speicher genutzt wird (auch unelegant, 50% mehr hätten gereicht wenn ein pointer genutzt worden wäre), da einmal der wert mit dem index und einmal der wert mit dem feldnamen gespeichert wird.
ich bin dann zur verwendung von mysql_fetch_assoc übergegangen, da es für mich genügte die felder mit feldnamen auslesen zu können.
im normalfall bei nicht zu großen anfragen wird aber die nutzung keinen großen unterschied machen.