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

    [Php] Valutare contenuto stringa come variabile

    Ciao a tutti.

    Ho questa situazione:
    $array_iniziale = ARRAY MULTIDIMENSIONALE INIZIALIZZATO
    $gerarchia = ARRAY CHE CONTIENE LA GERARCHIA DELLE CHIAVI
    $stringa = STRINGA CHE GENERA IL PERCORSO PER ACCEDERE AL VALORE NELL'ARRAY

    Codice PHP:
    foreach ($array_iniziale as $chiave => $valore)
            {
                
    $stringa "array_iniziale['$chiave']";
                
                for (
    $i 0$i count($gerarchia); $i++)
                {
                    
    $stringa .= "['$gerarchia[$i]']";
                }
                
                
    $nuovoarray[$chiave] = $$stringa;  **
            } 
    Il concatenamento funziona, ma non riesco a creare la variabile (ossia array_iniziale[$chiave]...) per prendere il valore di cui ho bisogno.
    L'errore lo ottengo dove sono gli asterischi: Undefined variable: (array_iniziale[$chiave][$gerarchia[0]][$gerarchia[1]][$gerarchia[2]]...).

    Grazie per l'aiuto.

  2. #2
    Potresti postare un esempio contenente le variabili $array_iniziale, $gerarchia e $stringa valorizzate?

  3. #3
    Questo è solo un esempio fatto al volo:

    Codice PHP:
    $array_iniziale = array(
    '0' => array('nome' => 'Giulio''cognome' => 'Tremonti''auto' => array('sportiva' => 'ferrari')),
    '1' => array('nome' => 'Walter''cognome' => 'Veltroni''auto' => array('sportiva' => 'porsche'))
    );

    $gerarchia = array(
    'auto',
    'sportiva');

    foreach (
    $array_iniziale as $chiave => $valore)
            {
                
    $stringa "array_iniziale['$chiave']";
                
                for (
    $i 0$i count($gerarchia); $i++)
                {
                    
    $stringa .= "['$gerarchia[$i]']";
                }
                
                
    $nuovoarray[$chiave] = $$stringa;
            } 
    Se stampi $stringa è tutto ok, il percorso è corretto, solo che non riesco ad accedere a 'ferrari' e 'porsche'.

    Grazie per l'aiuto.

  4. #4
    Codice PHP:
    <pre>
    <?php 
    $array_iniziale 
    = array(
    '0' => array('nome' => 'Giulio''cognome' => 'Tremonti''auto' => array('sportiva' => 'ferrari')),
    '1' => array('nome' => 'Walter''cognome' => 'Veltroni''auto' => array('sportiva' => 'porsche'))
    );

    $gerarchia = array(
    'auto',
    'sportiva');

    $nuovoarray = array();

    foreach (
    $array_iniziale as $chiave => $array){
        foreach (
    $gerarchia as $subkey) {
            if (isset(
    $array[$subkey])) {
                
    $array $array[$subkey];
            } else {
                
    $array null;
                break;
            }
        }
        
    $nuovoarray[$chiave] = $array
    }
    print_r($nuovoarray);
    ?>
    </pre>

  5. #5
    It Works!!
    Grazie.

    Un'altra cosa: perché questo non funziona:

    Codice PHP:
    $valore 'pippo';
    $
    $valore = array();
    $
    $valore[1] = 'giacomo';
    print_r($$valore); 

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.