Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]tablice 3 wymiarowe
Forum PHP.pl > Forum > Przedszkole
tomi1985
Witam Serdecznie,

mam problem z poprawnym wywołaniu tablicy 3D

mój kod

Kod
private $MenuPoziomAll = array (
                                        array ("Dodaj Obiekt" => "regi,0.html",
                                                "Opis" => array ("Rejestracja Obiektu",
                                                                 "dodaj_menu",
                                                                 "target=\"_blank\""
                                                                  )
                                                ),
                                                
                                        array ("Regulamin" => "regulamin/",
                                               "Opis" => array ("Regulamin Noclegów",
                                                                   "regi_menu",
                                                                ""
                                                                   )
                                              ),
                                              
                                        array ("Cennik" => "cennik/",
                                               "Opis" => array ("Cennik Noclegów",
                                                                   "cennik_menu",
                                                                ""
                                                                   )
                                              ),
                                              
                                        array ("Kontakt" => "kontakt/",
                                               "Opis" => array ("Kontakt Noclegów",
                                                                   "kontakt_menu",
                                                                ""
                                                                   )
                                              ),
                                              
                                        array ("Panel Administracyjny" => "panel/",
                                                "Opis" => array ("Panel Administracyjny",
                                                                 "admin_menu",
                                                                 "target=\"_blank\""
                                                                  )
                                                )
                                    );


Wywołanie tablicy

Kod
foreach($this->MenuPoziomAll as $value){ // Pobiera tablicę jako obiekt $this
            
            foreach($value as $key=>$adres){
                if(strpos($_SERVER['REQUEST_URI'], $adres) == true){//Sprawdzanie czy link jest aktywny
                    foreach($key as $opis){
                        echo '<li title="'.$opis[0].'" id="'.$opis[1].'" '.$opis[2].' class="active"><a href="'.$this->url.$adres.'">'.$opis.'</a></li>';
                    }
                }
                else{
                    foreach($key as $opis){
                        echo '<li title="'.$opis[0].'" id="'.$opis[1].'" '.$opis[2].' ><a href="'.$this->url.$adres.'">'.$opis.'</a></li>';
                    }
                }
            }            
        }


mój błąd: Warning: Invalid argument supplied for foreach()

Proszę o pomoc
mortus
Pomijając fakt, że zmienna $val nie istnieje trzeba się zastanowić nad strukturą tablicy, która do najlepiej zorganizowanych niestety nie należy. Zauważ, że drugi foreach() przechodzi po dwóch elementach, z których pierwszy to adres, a drugi to opis (w dodatku opis to kolejna tablica) - a to jest zupełnie bez sensu.
tomi1985
hmmm z tą zmienna $var to zauwazylem i juz zmienilem ... aczkolwiek nadal nie dziala...

w Takim razie jak mialbym ja zaprojektować aby przechowywala wszystkie info ktore sa w obecnych tablicach

pomoże ktoś ? bo już nie mam pojęcia jak to inaczej wywołać na petli foreach

Poprawiłem kod i działa:D

Kod
private $MenuPoziomAll = array (
                                        array ("regi,0.html" => array ("Dodaj Obiekt",
                                                                       "Rejestracja Obiektu",
                                                                       "dodaj_menu",
                                                                       "target=\"_blank\""
                                                                       )
                                                ),
                                                
                                        array ("regulamin/" => array ("Regulamin",
                                                                      "Regulamin Noclegów",
                                                                      "regi_menu",
                                                                      ""
                                                                      )
                                                
                                              ),
                                              
                                        array ("cennik/" => array ("Cennik",
                                                                   "Cennik Noclegów",
                                                                      "cennik_menu",
                                                                   ""
                                                                      )
                                                
                                              ),
                                              
                                        array ("kontakt/" => array ("Kontakt",
                                                                    "Kontakt Noclegów",
                                                                       "kontakt_menu",
                                                                    ""
                                                                       )
                                                
                                              ),
                                              
                                        array ("panel/" => array ("Panel Administracyjny",
                                                                  "Panel Administracyjny",
                                                                  "admin_menu",
                                                                  "target=\"_blank\""
                                                                  )
                                                
                                                )
                                    );


i wywołanie biggrin.gif

Kod
foreach($this->MenuPoziomAll as $value){ // Pobiera tablicę jako obiekt $this
            
            foreach($value as $key=>$adres){
                if(strpos($_SERVER['REQUEST_URI'], $key) == true){//Sprawdzanie czy link jest aktywny
                    echo '<li title="'.$adres[1].'" id="'.$adres[2].'" '.$adres[3].' class="active"><a href="'.$this->url.$key.'">'.$adres[0].'</a></li>';
                }
                else{
                    echo '<li title="'.$adres[1].'" id="'.$adres[2].'" '.$adres[3].'><a href="'.$this->url.$key.'">'.$adres[0].'</a></li>';
                }
            }            
        }
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.