Puoi usare un altro modo per popolare gli array associativi perche' di quello si tratta.

Codice PHP:


$persona
[0][id]
$persona[0][nome]
$persona[0][cognome]


// e' equivalente a 

$persona = array();

array_push$persona , array( "id"=>$id "nome"=>$nome"cognome"=>$cognome )  ) ; 
La funzione array push si occupa da sola ad inserire nelle celle incrementando l'indice il tuo sottoarray di dati .

QUindi ad ogni ciclo puoi inserire tutti i dati che vuoi con un codice molto pulito.

Ovviamente come dicevo sopra le due sol sono equivalenti e ti serve sempre un ciclo for, foreach, while, do while .... per popolare l'array.