Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][smarty]Kluczem tablicy jest tekst..., ... i już mam problem ze smarty.
Bonzaii
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 31.08.2006

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


Witam.

Mam problem z tablicą. Stworzyłem sobie oto taką tablicę:

  1. <?php
  2. (
  3. [city_level] => Array
  4. (
  5. [name] => Rozbudowanie Miasta
  6. [tname] => city_level
  7. [desc] => Rozbudowanie daje mo&#65533;liwo�� pomieszczenia wi�kszej ilo�ci mieszka�c�w, co w rezultacie mo�e przynie�� wi�ksze zyski z podatk�w.
  8. [pop] => 200
  9. [pomising] => 10
  10. )
  11.  
  12. [city_enjoy] => Array
  13. (
  14. [name] => Obiekty Rozrywkowe
  15. [tname] => city_enjoy
  16. [desc] => Rozbudowanie obiekt&#65533;w rozrywki zapewnia wi�ksz� popularno�� miasta i wi�ksz� ch�� jego zamieszkiwania. Populacja ro�nie wtedy szybciej.
  17. [pop] => 0
  18. [pomising] => 100
  19. )
  20.  
  21. )
  22. ?>

Klucze są tekstowe. "city_level" i "city_enjoy".

Zapisałem do smarty całą tablicę (nazywa się ona: $BuldingInfos)
  1. <?php
  2. $smarty -> assign("BuildingInfos",$BuildingInfos);
  3. ?>


Teraz próbuje to odczytać w smarty za pomocą takich funkcji:
  1. {$BuildingInfos[city_level].desc}
  2. {$BuildingInfos.city_level.desc}
  3. {$BuildingInfos[1].desc}


No i jeden wielki ... Nic. :/ Po prostu się nic nie wyświetla. A tablica nie jest pusta na pewno, gdyż wycinek jaki pokazałem wziąłem z funkcji:
  1. <?php
  2. echo "<pre>";
  3. print_r($BuildingInfos);
  4. echo "</pre>";
  5. ?>


Co jest nie tak? sad.gif
Go to the top of the page
+Quote Post
em1X
post
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Twoim problemem jest źle utworzona tablica. Twórz zawsze taką:

  1. <?php
  2. (
  3. [0] => Array
  4. (
  5. [key]=> city_level
  6. [name] => Rozbudowanie Miasta
  7. [tname] => city_level
  8. [desc] => Rozbudowanie daje mo&#65533;liwo�� pomieszczenia wi�kszej ilo�ci mieszka�c�w, co w rezultacie mo�e przynie�� wi�ksze zyski z podatk�w.
  9. [pop] => 200
  10. [pomising] => 10
  11. )
  12.  
  13. [1] => Array
  14. (
  15. [key]=> city_enjoy
  16. [name] => Obiekty Rozrywkowe
  17. [tname] => city_enjoy
  18. [desc] => Rozbudowanie obiekt&#65533;w rozrywki zapewnia wi�ksz� popularno�� miasta i wi�ksz� ch�� jego zamieszkiwania. Populacja ro�nie wtedy szybciej.
  19. [pop] => 0
  20. [pomising] => 100
  21. )
  22.  
  23. )
  24. ?>


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
Bonzaii
post
Post #3





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 31.08.2006

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


Wiem, że takie tablice są łatwiejsze w użyciu gdy chcę wyświetlić jej wszystkie elementy. Tylko mam następujący problem. Dane w MySQL się zmienią, więc indeksy tablicy też się zmienią. Potrzebuje wyszukiwać elementów z tablicy biorąc pod uwagę tylko i wyłącznie nazwę w postaci stringu. Przykładem były właśnie "city_enjoy" , "city_level"... Muszę po tym rozpoznawać tablicę i kiedy znajdę odpowiednie wartości, żeby z niej wyciągnąć dodatkowe informacje które są związane z moim wymyślonym obiektem ('name', 'desc').

No chyba, że ja o czymś nie wiem (a za pewne tak jest) i da się to jakoś wykorzystać? Proszę o dalszą pomoc.
Go to the top of the page
+Quote Post
em1X
post
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


W takim razie obsłuż swoją tablicę w ten sposób

Kod
{foreach from=$tablica key=klucz item=subArray}
    {foreach from=$subArray key=key item=value}
       {$klucz}[{$key}] = {$value}<br />
    {/foreach}

    <br />
{/foreach}


co zwróci:
Kod
city_level[name] = Rozbudowanie Miasta
.. itd


Ten post edytował em1X 19.02.2008, 21:03:32


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 11:11