Con fetch_array puoi accedere all'array sia tramite indice che valore, assoc solo tramite valore; c'è anche fetch_row che si accede solo tramite indice.
Per gli usi che hai citato è la medesima cosa, solo che cambia come detto l'accesso agli array creati.
Sulla guida php lo spiega molto bene.