Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wyciąganie danych z tablic o nieokreślonej głębokości
sweter
post
Post #1





Grupa: Zarejestrowani
Postów: 623
Pomógł: 11
Dołączył: 1.01.2009
Skąd: Wrocław

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


Witam,
poszukuję jakiegoś sposobu na odniesienie się do wszystkich elementów tablicy wielowymiarowej, np.:
  1. $tab[0] = 1;
  2. $tab[1][0] = 2;
  3. $tab[1][1] = 3;
  4. $tab[2] = 4;

Dodam, że takich tablicy w tablicy może być nieskończenie wiele, więc robienie pętli w pętli raczej odpada (IMG:style_emoticons/default/smile.gif)

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
wiiir
post
Post #2





Grupa: Zarejestrowani
Postów: 260
Pomógł: 34
Dołączył: 22.02.2010

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


hmm no to rekurencja (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kamil Pietrzak
post
Post #3





Grupa: Zarejestrowani
Postów: 213
Pomógł: 10
Dołączył: 7.01.2010
Skąd: Lublin

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


mozna zrobic petle w petli w petli:P

musisz w jakiejs zmiennej okreslic aktualny poziom - glebokosc
i oczywiscie dynamicznie tworzyc zmienne - beda potrzebne funkcje do operacji na ciagach, ale obejdzie sie bez tych ciezkich
Go to the top of the page
+Quote Post
flashdev
post
Post #4





Grupa: Zarejestrowani
Postów: 812
Pomógł: 117
Dołączył: 2.12.2008

Ostrzeżenie: (10%)
X----


Cytat(DiamondPir @ 20.10.2010, 20:43:39 ) *


Rozwiązanie rekurencyjne jest banalnie proste.

  1. <?php
  2.  
  3. $data = array(array(1, 2, 3, array(a, b, c), array(x, y, z), array(7, 8, 9), 10, 11, 12), i, j ,k);
  4.  
  5. var_dump($data);
  6. var_dump(listItems($data));
  7.  
  8. function listItems($data){
  9. if( is_array($data) ){
  10. $list = array();
  11. for( $i = 0; $i < count($data); $i++ ){
  12. $list = array_merge($list, listItems($data[$i]));
  13. }
  14. return $list;
  15. }
  16. return array($data);
  17. }
  18.  
  19. fgets(STDIN);

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: 23.08.2025 - 22:14