Występuję dylemat, próbuję stworzyć funkcję "dynamicznie" przeszukiwania tablicy, w tym przypadku mojej tablicy sesji, ale powinna być dla każdej. Teraz to nie jest mój problem, mój problem jest dynamiczne pozwalają na to, aby to zrobić ...Dynamiczne przeszukiwanie przez tablicę
Oto co mam
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]];
}
Więc powiedzmy, że mam tablicę:
array('First' => array('Second' => array('Third' => 'TEST VALUE'));
teraz chcę zadzwonić
$value = get('First/Second/Third');
a następnie dostać „test Value” z powrotem jako wartość dla mojego zmiennej $ value.
W tej sytuacji to działa, ale to po prostu nie jest dynamiczny, a ja chcę, żeby być w stanie obsłużyć może nawet 10 warstw głębokie tablicę, a także, bez dodawania coraz więcej linii ....
Cóż, może tu ktoś mądrzejszy ode mnie :)
Dzięki!
To jest świetne rozwiązanie. Wstydzę się przyznać, że powróciłem do eval(), gdy miałem ten problem raz. – Andri
Ale dlaczego '' $ data = isset ($ data [$ key])? $ data [$ key]: null'' zamiast tylko '' $ data = $ data [$ key] ''? Jeśli nie ma takiego klucza, '' $ data'' będzie mieć wartość null?!? – mzedeler
WIELKA !!!! Uwielbiam to ładne i czyste rozwiązanie, jest po prostu idealne! Dzięki Baba! –