Array multidimensione

Ciao a tutti,

il mio problema è il seguente: vorrei creare una pagina ove ogniqualvolta ci si entra, inserisco un nuovo elemento nell'array $_SESSION[$i]['id']['nome'], ove $i sarà un nuovo indice numerico, aumentato di una unità rispetto a quello già presente, in modo tale da inserire appunto il nuovo id ed il nuovo nome. Ma come faccio a capire qual'è l'ultimo indice presente? Spero di essermi spiegato...  :buck:

inviato 8 anni fa
grifis78
X 0 X

Ciao,

potresti utilizzare la funzione count così: count($_SESSION);

Ovviamente l'ultimo indice valido sarà $_SESSION[count($_SESSION) - 1]

:bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Grazie per la risposta,

ma count() mi da un valore inatteso, nel senso che se ad esempio ho:

$_SESSION[0]['id']['nome']='iddsad';
$_SESSION[1]['id']['nome']='fader';
$_SESSION[2]['id']['nome']='ca';
$_SESSION[3]['id']['nome']='fa';

secondo quanto mi ha consigliato tu, dovrebbe darmi il valore intero 4, invece ricevo un diverso numero in quanto l'array $_SESSION contiene anche altri valori che con mi interessano nella fattispecie.

Ripeto qual'è il mio problema nel caso mi sia spigato male: al posto di 0,1,2,3, ecc. metto una variabile, ad es. $i, che dev'essere incrementata ad ogni ingresso nella pagina inserendo così nuovi valori di 'id' e 'nome'. problema è che prima devo sapere a che valore è arrivato quell'indice per inserire una nuova riga nell'array! Come faccio? Abbiate pietà..

risposto 8 anni fa
grifis78
X 0 X

Ovviamente il count torna un valore corretto pensando che tu usassi la sessione solo per il caso che hai scritto.

Se vuoi ovviare a questo puoi inserire un ulteriore array che contenga tutti i valori che ti interessano. Il nome potrebbe essere "caricamento".

In questo modo ti basterà fare $_SESSION['caricamento'] e otterrai sempre il valore corretto!

:bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

grazie ancora zeta, in effetti bastava questo!

risposto 8 anni fa
grifis78
X 0 X
          $_SESSION['contatore']++;
        $i=$_SESSION['contatore'];
        echo "<br>".$i;
        $_SESSION[$i]['id']=$_GET['id'];
        echo $_SESSION[$i]['id'];
        
               
                for ($i=0; $n<$i; $n++)
                  {
                     echo "<br>".$_SESSION[$n]['id']."$n";
                  }
                     
                        
            

Ecco come ho fatto una prova (tutti gli echo che ci sono servono soltanto a rendermi conto che succede), ma il problema è che col ciclo for non mi compare quello che vado inserendo nell'arrey di sessione!! Ad ogni refresh della pagina vado inserendo in una nuova "riga" dell'array un campo 'id'. In effetti, il ciclo for funziona, ma non mi compaiono i campi id!

E che cavolo.... di nuovo aiuto...

risposto 8 anni fa
grifis78
modificato 8 anni fa
X 0 X

anzichè echo $var, usa var_dump($var), e ti dirà che c'è dentro e di che tipo... =D

risposto 8 anni fa
larchitetto
X 0 X
anzichè echo $var, usa var_dump($var), e ti dirà che c'è dentro e di che tipo... =D

provato, e quello che mi da è... NULL!! Ma perchè? cosa c'è di sbagliato?

risposto 8 anni fa
grifis78
X 0 X

P.S. nel ciclo for c'è un errore, il primo passaggio è $n=0, non $i

risposto 8 anni fa
grifis78
X 0 X

invece di usare questa struttura:

$_SESSION[0]['id']['nome']='iddsad';
$_SESSION[1]['id']['nome']='fader';
$_SESSION[2]['id']['nome']='ca';
$_SESSION[3]['id']['nome']='fa';

prova con questo approccio:

$_SESSION['miei_dati'][0]['id']['nome']='iddsad';
$_SESSION['miei_dati'][1]['id']['nome']='fader';
$_SESSION['miei_dati'][2]['id']['nome']='ca';
$_SESSION['miei_dati'][3]['id']['nome']='fa';

Per aggiungere un nuovo dato all'array $_SESSION['miei_dati'] basta fare così:

$_SESSION['miei_dati'][] = array('id'=>array('nome'=>'quello che vuoi tu');

 :bye:

risposto 8 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda