Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Salvare array multidimensionale in $_session

    Salve,
    ho un array a due dimensioni in formato array[$num][$key].

    Vorrei salvare una specifica voce di questo array in $_SESSION[$key] per utilizzare i dati in un'altra pagina, ma sto riscontrando qualche problemino con la sintassi dei cicli.

    Ho provato così, ma il ciclo va in loop anzichè fermarsi alla fine dei dati presenti nell'array $return:

    Codice PHP:
    public function Export($return) {
            for(
    $i =1$i++;) {
                foreach (
    $return[$i] as $key => $val) {
                    if (
    $i $return[$i]) {
                        break;
                    } else {
                        if(
    $return[$i][$key] == 'old_id') {
                        
    $_SESSION[$key] = $val;
                        }
                    }
                }
            }
           } 
    Qualcuno riesce a metterci un minimo d'ordine?
    Grazie in anticipo!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Come è fatto l'array $return?

    Questo penso non sia corretto
    Codice PHP:
    foreach ($return[$i] as $key => $val) {
        if (
    $i $return[$i]) { 
    Se in $return[$i] c'è un numero, allora non ha senso eseguirci sopra un ciclo foreach.
    Se invece contiene un altro array è corretto ciclarci sopra, ma poi l'if non sarà mai verificato perché cerchi di comparare un array con un numero.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    $return è un array di risultati da db.
    Codice PHP:
    array (
              array ([
    id] => '1', [cognome] => 'pippo' etc.),
              array ([
    id] => '2', [cognome] => 'de paperis' etc.)
            ) 
    a me interessa pescare (ad esempio) il campo cognome di ognuno di questi sotto-array per salvarlo in $_SESSION[cognome] e riutilizzarlo in un'altra pagina.
    Ultima modifica di Korenaar; 21-07-2014 a 14:02

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Il confronto lo devi fare sul campo id di $return?
    Allora l'if deve essere

    if ( $i > $return[$i]['id'] )

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    No,
    io devo recuperare (metti) tutti i campi [cognome] del sottoarray.

    Il confronto lo facevo semplicemente per fare in modo che il ciclo s'interrompesse, in realtà non m'interessa minimamente sapere l'id relativa.

    E' tecnicamente un while $return, ma è una prova che ho già fatto intrecciando i cicli (sicuramente in modo sbagliato), mi scade in un loop. Con il doppio foreach invece forse riesco a parsare l'array fino in fondo, ma non ho ancora trovato il sistema giusto per fare in modo che si fermi una volta che sono finiti i risultati.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Non è ancora ottimizzato 100% ma questo fa discretamente il suo lavoro:

    Codice PHP:
    public function Export($return) {
            foreach (
    $return as $key => $val) {
                foreach (
    $val as $key2 => $val2) {
                    if (
    $key2 == 'old_id') { 
                       
    $_SESSION['export']['old_id'.$key] = $val2;
                    }
                }
            } 
    Adesso sotto $_SESSION['export'] ho l'array che mi serviva.

    Grazei delle dritte comunque!

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.