Ciao.
Da quel che ne so non puoi normalmente passare nè array associativi nè tantomeno array sequenziali.
In qualunque caso dovrai passare i dati come stringa in formato mime.
Ad es:
mioarray=val1,val2,val3
Solitamente si usa la funzione join (o "implode" in php) per convertire un array in una stringa da poter passare a flash.
Da flash volendo potrai ricavarne nuovamente un array tramite la funzione split.
Tuttavia questo è applicabile nel caso di array sequenziali.
E' da tener conto inoltre che gli array associativi in flash non sono altro che istanze della classe Object a cui non è possibile applicare i normali metodi specifici per gli array.
Per convertire l'array associativo in stringa ti servirà ciclare gli elementi in esso contenuti.
In questo caso può esserti utile il ciclo "foreach" in php per elaborare la stringa dei dati "chiave,valore" di ogni elemento, mentre da flash puoi rielaborare l'array utilizzando l'analogo ciclo "for in".
Ad esempio in php avrai una roba del genere:
Codice PHP:
<?php
$arr["nome"] = "pippo";
$arr["cosa"] = "penna";
$arr["citta"] = "pisa";
$itm = array();
foreach($arr as $key => $val){
$itm[] = $key.":".$val;
}
echo "arr=".implode(",", $itm);
?>
In flash sarà quindi restituita la variabile "arr" che avrà valore "nome
ippo,cosa
enna,citta
isa".
Volendo ottenere nuovamente un array associativo, in flash puoi fare una cosa del genere:
Codice PHP:
var str = "nome:pippo,cosa:penna,citta:pisa";
var obj = [];
var itm = str.split(",");
for (var id in itm) {
var e = itm[id].split(":");
obj[e[0]] = e[1];
}
// faccio un eventuale pulizia
delete str;
delete itm;
delete id;
delete e;
La variabile "obj" è in pratica l'array associativo rielaborato.
Ovviamente devi fare attenzione che non ci sia conflitto tra i dati e i caratteri di separazione.