Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57

    associare 2 array variabili

    Ciao a tutti, ho un problema con array / variabili che non capisco come risolvere.

    dunque, questo è il codice :
    Codice PHP:
    // primo array
    $alias['test1'][0] = "alias primo";
    $alias['test1'][1] = "alias secondo";
    $alias['test1'][2] = "alias terzo";
    $alias['test1'][3] = "alias quarto";
    $alias['test1'][4] = "alias quinto";
    $alias['test1'][5] = "alias sesto";

    // secondo array
    $pinco['test1'][0] = "pinco primo";
    $pinco['test1'][1] = "pinco secondo";
    $pinco['test1'][2] = "pinco terzo";
    $pinco['test1'][3] = "pinco quarto";
    $pinco['test1'][4] = "pinco quinto";
    $pinco['test1'][5] = "pinco sesto"
    Codice PHP:
    echo '<h3>Lista caption :</h3>'// array caption
      
    foreach($alias[$subMenu[$gallery]] as $k => $v){
      
    print_r('Chiave = '.$k.' - Valore = '.$v.'
    '
    );    

    $subMenu contiene dinamicamente 'test1' e $gallery è un intero

    la variabile $alias dovrebbe cambiare di volta in volta $alias, $pinco e così via..

    come posso far cambiare la variabile contenente l'array?

  2. #2
    $nomiarray=array("alias","pinco");

    foreach($nomiarray as $nome):
    foreach($$nome[$subMenu[$gallery]] as $k => $v):

    eccetera...

    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Originariamente inviato da Shores
    $nomiarray=array("alias","pinco");

    foreach($nomiarray as $nome):
    foreach($$nome[$subMenu[$gallery]] as $k => $v):

    eccetera...

    mmmm... il doppio $$ è per le variabili variabili giusto?
    non capisco la sintassi, perchè hai messo i : ?

  4. #4
    I due punti sono una sintassi standard di php:

    O scrivi:
    foreach() {}

    o scrivi:
    foreach():
    endforeach;

    è una sintessi che io preferisco, perchè le parentesi graffe son tutte uguali e se hai un if annidato dentro un for annidato dentro un while, ti sfido a capire quale graffa chiude quale costrutto!

    Si, il doppio $ è per avere una variabile identificata da un nome contenuto a sua volta in un'altra veriabile, anche se ti confesso che io avrei usato un array più generale con una dimensione i più e via...

    $dati["alias"][][]
    $dati["pinco"][][]

    e così via...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Capito. Una variabile generale l'avevo pensata, ma mi sembra poi complicato gestire il tutto.

    Tuttavia mi sfugge come poter stampare il contenuto dell'array.

    Codice PHP:
    $nomiarray=array("alias","pinco"); // ok, qui mi faccio un array contenente tutti i nomi
     
    foreach($nomiarray as $nome): // qui non mi è chiaro cosa dovrei dichiarare

    endforeach;
     
    foreach($
    $nome[$subMenu[$gallery]] as $k => $v): // qui inserisco l'array variabile $$
      
    print_r('Chiave = '.$k.' - Valore = '.$v.'
    '
    );
    endforeach; 
    Scusa ma non sono un campione di php... ma ci sto lavorando

  6. #6
    No: quello che ti serve è un ciclo annidato nell'altro:

    Codice PHP:
    $nomiarray=array("alias","pinco"); // ok, qui mi faccio un array contenente tutti i nomi
     
    foreach($nomiarray as $nome): // qui non mi è chiaro cosa dovrei dichiarare
    foreach($$nome[$subMenu[$gallery]] as $k => $v): // qui inserisco l'array variabile $$
      
    print_r('Chiave = '.$k.' - Valore = '.$v.'
    '
    );
    endforeach;
    endforeach; 
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Si, ci avevo provato, ma c'è qualche problema con l'ultimo foreach

    Codice PHP:
    foreach($nomiarray as $nome): // qui ho 2 variabili di array e riesco a stampare il contenuto
    //print_r($$nome);
      
    foreach($$nome[$subMenu[$gallery]] as $k => $v): // qui non stampa niente
        
    print_r('Chiave = '.$k.' - Valore = '.$v.'
    '
    ); 
      endforeach; 
    endforeach; 
    Mi pare strano...

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Faccio un passo indietro, perchè forse il problema sta qui :

    Codice PHP:
    $temp $row['nome']; // qui inserisco il giusto valore da database, in questo caso alias
    print_r($$temp); // qui mi stampa tutto l'array alias perfettamente
                    
    //test
    echo $alias[$subMenu[$gallery]][1]; // qua lo stampa giusto
    echo $$temp[$subMenu[$gallery]][1]; // qua non stampa niente 
    idee??

  9. #9
    strano, prova con una variabile temporanea:

    $temp=$$nome;
    foreach($temp[.....
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    57
    Si! Mi sa che era quello il problema, non prendeva il doppio $$, con una variabile temporanea pare funzionare.
    Provo ad andare avanti nello script...

    Grazie 1000 !!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.