Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Trójwymiarowa tablica + foreach()
Forum PHP.pl > Forum > PHP
sztosz
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ć sad.gif
aleksander
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. ?>
sztosz
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ć 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 smile.gif

Sprawę rozwiązałem bez wielowymiarowych tablic i nauczyłem się trochę przy tym o dziedziczeniu w praktyce winksmiley.jpg

Dziękuję za Pomoc.
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.