Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema con array.. ma cosa?

    Ciao a tutti, ecco qui un piccolissimo listato semplice semplice ove ogni qualvolta ricarico una pagina alla quale viene passato un ID via GET lo inserisce nell'array $_SESSION[$i]['id'], ove $i sarà un contatore in modo tale da non sovrascrivere l'ID precedentemente salvato. Al primo echo mi visualizza tutto, ma a momento che voglio scorrere l'array d'accapo con un ciclo for, nell'array in questione non c'è assolutamente niente.... Ed in effetti, non solo non compare niente, ma se uso la funzione var_dump ho come risultato un bel.. NULL! Ma cosa c'è di sbagliato??

    Codice PHP:
    $_SESSION['contatore']++;
    $i=$_SESSION['contatore'];
    $_SESSION[$i]['id']=$_GET['id'];
    echo 
    $_SESSION[$i]['id'];

    for (
    $n=0$n<$i$n++)
    {
    echo 
    "
    "
    .$_SESSION[$n]['id']."$n";

    Aiuto....

  2. #2
    Se devi semplicemente aggiungere un elemento ad un array, utilizza questo costrutto:

    Codice PHP:
    <?php 
    $array 
    = array();
    $array[] = 'A';
    $array[] = 'B';
    $array[] = 'C';
    $array[] = 'D';
    print_r($array);
    ?>

  3. #3
    in pratica non dichiari da nessuna parte che $_SESSION[$i] e' un array


    $_SESSION[$i] = array();
    $_SESSION[$i]['id'] = bla bla bla

  4. #4
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Codice PHP:
    //creo una volta l'array e non lo sovrascrivo
    $_SESSION['id']=array();

    //nelle pagine...
    if($_GET['id']){
        
    array_push($_SESSION['id'], $_GET['id']);
    }
    var_dump($_SESSION['id']);
    //risultato:
    $_SESSION['id'][0] = "id passato in get";
    $_SESSION['id'][1] = "id passato in get"
    La vita e' uno switch();

  5. #5
    In effetti non dichiaravo che fosse un nuovo array dell'array.....
    grazie a tutti ragazzi!!!! Vado a provare subito i vostri consigli!




  6. #6
    Ho risolto usando array_push($_SESSION['id'], $_GET['id']);

    Mi sovviene in mente però un altro problema... in effetti, io volevo usare un indice come nel primo post (cioè $_SESSION[$i], invece che $_SESSION['id][$i], come gentilmenente mi avete suggerito) perchè oltre l'id volevo memorizzare anche altri dati come ad esempio cognome, nome, ecc. Ecco qual'era esattamente la mia idea:

    $_SESSION[0]['id']['cognome']['nome']
    $_SESSION[1]['id']['cognome']['nome']
    $_SESSION[2]['id']['cognome']['nome']
    $_SESSION[3]['id']['cognome']['nome']

    ove ovviamente, il primo indice numerico lo ricavo dalla variabile $i.
    Ho creato scripts on questi scopi molto facilmente usando un database, ma volevo ragionare un pò sull'utilizzo degli array.

  7. #7
    Utente di HTML.it L'avatar di marco80
    Registrato dal
    May 2005
    Messaggi
    1,357
    Codice PHP:


    //creo una volta l'array e non lo sovrascrivo
    $_SESSION['indice']=array();
    $_SESSION['contatore']=0;

    //nelle pagine...
    if($_GET['id']){
        
    $array=array();
        
    $array['id']=$_GET['id'];
        
    $_SESSION['contatore']++;
        
    array_push($_SESSION['indice'][$_SESSION['contatore']], $array);
    }
    var_dump($_SESSION['indice']); 
    La vita e' uno switch();

  8. #8
    Originariamente inviato da marco80
    Codice PHP:


    //creo una volta l'array e non lo sovrascrivo
    $_SESSION['indice']=array();
    $_SESSION['contatore']=0;

    //nelle pagine...
    if($_GET['id']){
        
    $array=array();
        
    $array['id']=$_GET['id'];
        
    $_SESSION['contatore']++;
        
    array_push($_SESSION['indice'][$_SESSION['contatore']], $array);
    }
    var_dump($_SESSION['indice']); 
    Hmm.. adesso credo sia ancora più chiaro! Grazie di nuovo!!

  9. #9
    Originariamente inviato da grifis78
    Ho risolto usando array_push($_SESSION['id'], $_GET['id']);

    Mi sovviene in mente però un altro problema... in effetti, io volevo usare un indice come nel primo post (cioè $_SESSION[$i], invece che $_SESSION['id][$i], come gentilmenente mi avete suggerito) perchè oltre l'id volevo memorizzare anche altri dati come ad esempio cognome, nome, ecc. Ecco qual'era esattamente la mia idea:

    $_SESSION[0]['id']['cognome']['nome']
    $_SESSION[1]['id']['cognome']['nome']
    $_SESSION[2]['id']['cognome']['nome']
    $_SESSION[3]['id']['cognome']['nome']

    ove ovviamente, il primo indice numerico lo ricavo dalla variabile $i.
    Ho creato scripts on questi scopi molto facilmente usando un database, ma volevo ragionare un pò sull'utilizzo degli array.
    non si puo' usare un indice numerico o che inizi con un numero con $_SESSION. E' soggetto a tutte le limtazioni sintattiche previste dalle variabili del php.

    In altre parole ... il primo indice dell'array $_SESSION deve essere compatibile con i nomi assegnabili ad una variabile.

    Variable names follow the same rules as other labels in PHP. A valid variable name starts with a letter or underscore, followed by any number of letters, numbers, or underscores. As a regular expression, it would be expressed thus: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

    Nota: For our purposes here, a letter is a-z, A-Z, and the ASCII characters from 127 through 255 (0x7f-0xff).

    Nota: $this is a special variable that can't be assigned.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.