Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]array + foreach
Forum PHP.pl > Forum > Przedszkole
NoSleep2
Witam, mam krótkie menu napisane w tablicy array()

menu.php
  1. $menu = array(
  2. 'user' => array(
  3. 'name' => trans('Administration'),
  4. 'img' =>'users.gif',
  5. 'link' =>'?m=welcome',
  6. 'tip' => trans('System information and management'),
  7. 'submenu' => array(
  8. 'name' => trans('Info'),
  9. 'link' =>'?m=info'.$CONFIG['phpui']['default_module'],
  10. 'tip' => trans('Basic system information'),
  11. ),
  12. 'name' => trans('Users'),
  13. 'link' =>'?m=userlist',
  14. 'tip' => trans('User list'),
  15. ),
  16. 'name' => trans('New User'),
  17. 'link' =>'?m=useradd',
  18. 'tip' => trans('New User'),
  19. ),
  20. 'name' => trans('Backups'),
  21. 'link' =>'?m=dblist',
  22. 'tip' => trans('Allows you to manage database backups'),
  23. ),
  24.  
  25. 'name' => trans('Syslog'),
  26. 'link' => '?m=syslog&sl_df='.date('Y/m/d',strtotime("-2 week",time())),
  27. ),
  28. 'name' => 'Changelog',
  29. 'link' =>'?m=changelog',
  30. 'tip' => '',
  31. ),
  32. 'name' => 'Sponsorzy',
  33. 'link' =>'?m=sponsorzy',
  34. 'tip' => 'Lista firm które przyczyniły się do rozwoju iNET LMS',
  35. ),
  36. 'name' => trans('Copyrights'),
  37. 'link' =>'?m=copyrights',
  38. 'tip' => trans('Copyrights, authors, etc.'),
  39. ),
  40. 'name' => 'Rejestracja',
  41. 'link' => '?m=register',
  42. 'tip' => 'Informacje o rejestracji instalacji iNET LMS',
  43. ),
  44. ),
  45. ),
  46. );


** funkcja trans służy do tłumaczenie strony na innej języki.

wyświetlam wszystkie opcje za pomocą pętli foreach
  1. foreach ($menu as $numer => $wartosc){
  2. if(gettype($wartosc) == 'array'){
  3. foreach ($wartosc as $numer => $wartosc1){
  4. if(gettype($wartosc1) == 'array'){
  5. foreach ($wartosc1 as $numer => $wartosc2){
  6. if(gettype($wartosc2) == 'array'){
  7. foreach ($wartosc2 as $numer['admin']['submenu']['0']['name'] => $wartosc3){
  8. echo ('4----'.$wartosc3.'<br />');
  9. }
  10. } else {
  11. echo ('3---'.$wartosc2.'<br />');
  12. }
  13. }
  14. } else {
  15. echo ('2--'.$wartosc1.'<br />');
  16. }
  17. }
  18. } else {
  19. echo ('1-'.$wartosc.'<br />');
  20. }
  21. }


chciałbym aby z tablicy wyświetlały wartości w sposób następujący:

  1. <a href="'.$menu['user']['submenu']['0']['link'].'">'.$menu['user']['submenu'][0]['name'].'</a>


prosty przykład wyciągania wartości bez pętli, takie coś chciałbym zrobić w samej pętli, ale niestety próbowałem i nie wiem jak to zrobić.

Proszę o pomoc wink.gif
kapslokk
Ja ogólnie bym tutaj chyba widział rekurencje.
Wtedy coś w stylu:
  1. function showMenu($menu){
  2. foreach($menu as $menuItem){
  3. echo('<a href="'.$menuItem['link'].'">'.$menuItem['name'].'</a> ');
  4. if(isset($menuItem['submenu'])){
  5. showMenu($menuItem['submenu']);
  6. }
  7. }
  8. }
  9.  

Nie testowane, nie wiem czy działa smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.