Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Trójwymiarowa tablica + foreach()
sztosz
post
Post #1





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Mam trójwymiarowa tablice, z niej ładuję elementy do menu. Tablica wygląda tak:

  1. <?php
  2.  
  3. $menuVars['menuItem']['id']['name']
  4.  
  5. ?>


Ilość tych elementów nie jest mi znana, zmienia się w zależności od kilku czynników.

Stosuje system szablonów patTemplate, w nim funkcja
  1. <?php
  2. addVar('szablon', 'place holder', 'wartość');
  3. ?>

znaczy tyle co w szablonie 'szablon' zamień wszystkie 'place holder' na 'wartość'.

Natomiast funkcja
  1. <?php
  2. parseTemplate('szablon', 'a');
  3. ?>

parsuje dany szablon, a przelącznik 'a' (append) pozwala na kilkukrotne parsownie danego szablonu z dodawaniem różnych wartości.

I teraz mam:
  1. <?php
  2.  
  3. foreach ($this->menuVars as $menuItem => $id) {
  4. foreach ($menuItem as $id => $name) {
  5. $this->template->addVar($menuItem, 'ID', $id);
  6. $this->template->addVar($menuItem, 'NAME', $name);
  7. $this->template->parseTemplate($menuItem, "a");
  8. }
  9. }
  10.  
  11. ?>


Czy te pętle zadziałają w spodziewany sposób? Tzn. wyciągnie z tablicy menuVars (część klasy) wartości pól ['id'] i ['name'] i doda je do odpowiednich szblonów których nazwy to są ['menuitem'] w tablicy?

A jeżeli nie to jak należy to zmodyfikować?

Przepraszam jeżeli trudno to zrozumieć, ale mi to strasznie trudno wytłumaczyć (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
aleksander
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

Ostrzeżenie: (0%)
-----


nie zadziała:)

jeżeli chcesz wyciagac id i name powinno bc tak:
  1. <?php
  2. $menuVars['menuItem']['id'];
  3. $menuVars['menuItem']['name']
  4. foreach ($this->menuVars as $menuItem) {
  5.  
  6. $this->template->addVar('szablon', 'ID', $menuItem['id']);
  7. $this->template->addVar('szablon', 'NAME', $menuItem['name']);
  8. $this->template->parseTemplate('szablon', "a");
  9. }
  10. }
  11. ?>
Go to the top of the page
+Quote Post
sztosz
post
Post #3





Grupa: Zarejestrowani
Postów: 866
Pomógł: 32
Dołączył: 2.06.2004
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


No ale tablica jest trójwymiarowa i własnie niestety wygląda tak:
  1. <?php
  2.  
  3. $menuVars['menuItem']['id']['name']
  4. //czyli np:
  5. $menuVars['galeria']['1']['sopot'];
  6. $menuVars['galeria']['2']['gdynia'];
  7. $menuVars['galeria']['3']['gdańsk'];
  8. $menuVars['fotograf']['1']['Marek'];
  9. $menuVars['fotograf']['2']['Adam'];
  10.  
  11. ?>


I menuItem jest nazwą szablonu (oraz pozycji w rozwijanym menu), ID jest nazwą anchora, a name nazwą linka. I chce wiedzieć czy istnieje zgrabny sposób na wypełnienie tych szablonów czy bede musiał to na male częsci rozbijać (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

EDIT:
@aleksander: Jak mowisz że się nie da to nawet nie będe próbował sie bawić w metodę prób i bledów (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Sprawę rozwiązałem bez wielowymiarowych tablic i nauczyłem się trochę przy tym o dziedziczeniu w praktyce (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Dziękuję za Pomoc.

Ten post edytował sztosz 10.01.2006, 13:18:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.12.2025 - 13:33