Sto correndo un dilemma, sto provando a creare una funzione per la ricerca "dinamica" attraverso un array, in questo caso il mio array di sessione, ma dovrebbe essere per qualsiasi. Ora che non è il mio problema, il mio problema è quello di consentire in modo dinamico ciò avvenga ...Ricerca dinamica attraverso una matrice
Ecco quello che ho
public static function get($search = 'First/Second/Third') {
$explode = explode('/',$search);
$count = count($explode);
if ($count == 1)
if (isset($_SESSION[$explode[0]]))
return $_SESSION[$explode[0]];
elseif ($count == 2)
if (isset($_SESSION[$explode[0]][$explode[1]]))
return $_SESSION[$explode[0]][$explode[1]];
elseif ($count == 3)
if (isset($_SESSION[$explode[0]][$explode[1]][$explode[2]]))
return $_SESSION[$explode[0]][$explode[1]][$explode[2]];
}
Quindi diciamo che ho un array:
array('First' => array('Second' => array('Third' => 'TEST VALUE'));
ora voglio chiamare
$value = get('First/Second/Third');
e quindi ottenere "test value" indietro come valore per la mia variabile $ value.
In questa situazione funziona, ma semplicemente non è dinamica, e voglio che sia in grado di gestire forse anche una matrice profonda 10 strato così, senza l'aggiunta di sempre più linee ....
Beh, forse qualcuno qui fuori più intelligente di me :)
Grazie !!
Questa è un'ottima soluzione. Mi vergogno di ammettere che mi sono ricor- dato a eval() quando ho avuto questo problema una volta. – Andri
Ma perché il '' $ data = isset ($ data [$ key])? $ data [$ key]: null'' al posto di '' $ data = $ data [$ key] ''? Se non esiste una chiave di questo tipo, '' $ data'' sarà nullo?!? – mzedeler
GRANDE !!!! Adoro questa soluzione bella e pulita, semplicemente perfetta! Grazie Baba! –