fetch_array can return an indexed array, an associative array or both while fetch_assoc will return only an associative array.
Personally I prefer to use mysql_fetch_assoc() because the keys in the array are the actual column names returned by the original sql query.
mysql_fetch_array returns both types of arrays by default which is a waste imo unless you need both for some reason.