PDA

View Full Version : [php] passaggio array multidimensione tra funzioni


Pingus
10-10-2007, 13:37
Ciao a tutti, non sono moto pratico di questa cosa e devo passare un array a 3 dimensioni ad una funzione e da questa ad un altra.
vi fccio alcuni esempio di come è l'array:
$myarray[2007][stefano][casa] = 1
$myarray[2007][federico][casa] = 3
$myarray[2008][stefano][casa] = 100
$myarray[2008][stefano][ufficio] = 3

ora dalla pagina principale (index.php) passo questo array ad una funzione che mi restituisce una stringa (chiamiamola funzione1) in questo modo:
$mystringa = funzione1($myarray)
e questa funzione è cosi definita:
function funzione1(&$myarray) Passaggio per riferimento
ora fin qui tutto bene riesco a ciclare sull'array; poi all'interno di funzione1 faccio una chiamata ad un altra funzine (funzione2) sempre nello stesso modo e anche funzione 2 la definisco cosi:
<b>function funzione2(&$myarray) Passaggio per riferimento</b>
adesso pero dentro funzione2 $myarray non è piu riconosciuto come un array e quidni non posso ciclare su esso. come mai? cosa sbaglio? ho provato anche a passarlo ala seocnda funzione normalmente senza & ma il risultato è uguale. perche alla prima funzione non ho problami e alla seocnda si?
Grazie per l'aiuto

Pingus
10-10-2007, 15:34
un aiutino ???

Pingus
11-10-2007, 10:35
nessuno sa darmi una piccola risposta?

dad_89
13-10-2007, 16:00
Provato ad usare foreach?

Pingus
13-10-2007, 20:13
non posso usare foreach perche no me lo riconosce come array....è questo che non capisco perche

dad_89
14-10-2007, 11:03
Ho fatto una prova, per verificare io stesso l'errore, ma nel mio caso ha tutto funzionato perfettamente, forse se posti la funzione possiamo provare a risolvere il problema, perchè deve esser un errore del codice.

Questa è una funzione di prova che ho creato in 2 secondi, e come vedi funziona tutto egregiamente.
<?php
function ar(&$array){
print_r($array);
function ar2(&$array){
echo "<br />";
echo count($array) . "<= Tot array";
}
ar2($array);
}

$myarray = array(
"a" => array("prova_1" => array(1)),
"b" => array("prova_2" => array(2)),
);
ar($myarray);
?>