<? $arr[0]['lev'] = '1'; $arr[0]['name'] = 'Wartosc 1'; $arr[1][0]['lev'] = '1'; $arr[1][0]['name'] = 'Wartosc 2'; $arr[2][0][0]['lev'] = '2'; $arr[2][0][0]['name'] = 'Wartosc 2'; $arr[3]['lev'] = '4'; $arr[3]['name'] = 'Wartosc 2'; ?>
Jak widać wymieszane tablice wielowymiarowe z jednowymiarowymi.
Teraz chciałem zmusić kod do dostania się z każdych wartości tej zmiennej.
Bo kod nie wie ile jest poziomów tych tablic. Tu jest do dwóch ale może być przecież aż do 5 czyli do pięciowymiarowej tablicy.
Zwykła pętla raczej tu nic nie da... myślałem na rekurencją i aby sprawdzała czy podana wartość jest jako tablica, jeżeli jest leci dalej aż do momentu gdy wartość przestaje być tablicą...
<? function level($level,&$arr=false){ if($arr == false){ $arr[0]['lev'] = '1'; $arr[0]['name'] = 'Wartosc 1'; $arr[1][0]['lev'] = '1'; $arr[1][0]['name'] = 'Wartosc 2'; $arr[2][0][0]['lev'] = '2'; $arr[2][0][0]['name'] = 'Wartosc 2'; $arr[3]['lev'] = '4'; $arr[3]['name'] = 'Wartosc 2'; } foreach($arr as $k => $v){ level($level,$arr[$k]); }else{ if($level == $arr[$k]['lev']){ $result = $arr[$k]; } } } } ?>
Całe to przeszukanie ma na celu dotarcie do warunku
<? if($level == $arr[$k]['lev']){ ?>
a następnie przypisanie do zmiennej $result = $arr[$k] łącznie z wymiarem tablicy...