Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Tablice] Jak je przeglądać bez eval? (Dwu wymiarowe)
Babcia@Stefa
post
Post #1





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Witam, jak można przeglądać tablice typu:

  1. <?php
  2. ?>


Bez użycia funkcji eval" title="Zobacz w manualu PHP" target="_manual()?

Pozdrawiam, WebNuLL
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
mike
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A jak Ty je z tym eval() przeglądasz? Aż strach pomyśleć co wymyśliłeś.
  1. <?php
  2.  
  3. $array = array(
  4.    array('1', '2', '3', '4'),
  5.    array('5', '6', '7', '8'),
  6. );
  7.  
  8. foreach ($array as $item) {
  9.    foreach ($item as $var) {
  10.        echo $var;
  11.    }
  12. }
  13.  
  14. ?>
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #3





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Cytat(mike @ 4.04.2009, 18:35:49 ) *
A jak Ty je z tym eval() przeglądasz? Aż strach pomyśleć co wymyśliłeś.
  1. <?php
  2.  
  3. $array = array(
  4.    array('1', '2', '3', '4'),
  5.    array('5', '6', '7', '8'),
  6. );
  7.  
  8. foreach ($array as $item) {
  9.    foreach ($item as $var) {
  10.        echo $var;
  11.    }
  12. }
  13.  
  14. ?>


Heh.. no fakt, strach pomyśleć (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

  1. <?php
  2. ...
  3. $this ->Location = '['jeden']['dwa']['trzy']';
  4. eval('$Array' .$this->Location);
  5. ?>


Dzięki za odpowiedź, Twój pomysł podsunął mi rekurencję! (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Zaraz coś po kombinuję z tym pomysłem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam, WebNuLL

Ten post edytował Babcia@Stefa 4.04.2009, 19:44:29
Go to the top of the page
+Quote Post
mike
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


A wiesz, że możesz tak:
  1. <?php
  2.  
  3. echo $array['jeden']['dwa']['trzy'];
  4.  
  5. ?>
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #5





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Cytat(mike @ 4.04.2009, 18:45:08 ) *
A wiesz, że możesz tak:
  1. <?php
  2.  
  3. echo $array['jeden']['dwa']['trzy'];
  4.  
  5. ?>


No ja mogę tak, ale obiekt klasy sam nie zrobi za mnie tego - od tego jest eval" title="Zobacz w manualu PHP" target="_manual();

Pozdrawiam, WebNuLL

Ten post edytował Babcia@Stefa 4.04.2009, 19:48:59
Go to the top of the page
+Quote Post
mike
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat(Babcia@Stefa @ 4.04.2009, 20:45:42 ) *
No ja mogę tak, ale obiekt klasy sam nie zrobi za mnie tego (...)
A powiedz mi dokładnie co chcesz osiągnąć?
Go to the top of the page
+Quote Post
Babcia@Stefa
post
Post #7





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


Chcę "przelecieć" całą tablicę razem z jej pod tablicami i spisać do jednej tablicy wszystkie wartości wszystkich elementów tablic i subtablic (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Co do eval" title="Zobacz w manualu PHP" target="_manual() to używałem go aby tworzyć tablice typu:
$tablica['1']['2']['3]['4'] i później aby się do nich dostać.
Klasa wykożystująca ten sposób przypominała rejestr systemowy np. SYSTEM/Applications/Firefox/Path (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Z początku klasa powodowała przeróżne awarie (eval" title="Zobacz w manualu PHP" target="_manual() ...), ale teraz śmiga (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

Pozdrawiam, WebNuLL

Ten post edytował Babcia@Stefa 5.04.2009, 10:18:13
Go to the top of the page
+Quote Post
pejott
post
Post #8





Grupa: Zarejestrowani
Postów: 81
Pomógł: 4
Dołączył: 15.02.2009

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


Wiesz co to rekurencja? Poczytaj to będziesz wiedział jak przelecieć całą tablicę.
Go to the top of the page
+Quote Post
kamil4u
post
Post #9





Grupa: Zarejestrowani
Postów: 2 350
Pomógł: 512
Dołączył: 4.01.2009
Skąd: Wrocław / Świdnica

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


@pejott Czytaj ze zrozumieniem:
Cytat
Wiesz co to rekurencja?
, a wcześniej
Cytat
Dzięki za odpowiedź, Twój pomysł podsunął mi rekurencję! smile.gif
Go to the top of the page
+Quote Post
megawebmaster
post
Post #10





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Oczywiście trzeba pamiętać, że rekurencja nie jest najlepszym rozwiązaniem - duże obciążenie serwera, a w dodatku ograniczenie chyba do 64 razy wywołania samej siebie... Wolałbym z poziomu jednej funkcji wywoływać drugą, np. w obiekcie. I za każdym razem rozkładać dane coraz bardziej. Chociaż to też jest słabo wydajne...
Go to the top of the page
+Quote Post
ts23
post
Post #11





Grupa: Zarejestrowani
Postów: 12
Pomógł: 1
Dołączył: 20.03.2009

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


może array_walk_recursive ?
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: 22.08.2025 - 14:15