Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyliczanie drzewa tablic
Forum PHP.pl > Forum > PHP
matiszak
Witam
Mam trochę dziwny problem. Wziąłem się za tworzenie HTMLParser'a Do mojej aplikacji. Problem polega w stworzeniu drzewa tablic. np

Cytat
$HTMLarray['html'] = array();
$HTMLarray['html']['body'] = array();
$HTMLarray['html']['body']['title'] = "Php Forum";

$poziom_zagniezdzenia = array('html', 'body');

while(cos tam) {

$nowy_tag = "div";

array_push($poziom_zagniezdzenia, $nowy_tag); // Dzięki temu program wie że akurat operuje na divie w tagu body w tagu html

//i tutaj nastepuje pytanie jak za pomoca inforrmacji w $poziom_zagniezdzenia stworzyć w //$HTMLarray['html']['body'][$nowy_tag] tablice. Chodzi o to że program ma operować na różnej glębokości //zagnieżdżenia czyli nie moge dać $HTMLarray['html']['body'][$nowy_tag] ale wymyślić jakiś uniwersalny sposób //który odczytuje zagnieżdżenie z $poziom_zagniezdzenia i zapisuje jakieś dane


}


Mam nadzieje że wyraźnei napisałem bo nawet nie wiedziałem jak to opisać biggrin.gif:D Wiecie może jak rozwiązać ten problem. Być może w php jest ukryta jakaś inna klasa którą bym mógł zastosować questionmark.gif
wookieb
Polaczenie referencji i rekurencji. Przydatny może się okazać ten post
http://forum.php.pl/index.php?showtopic=11...st&p=564747
Tam akurat pokazana jest referencja ale parę postów niżej znajdziesz rekurencję.
hwao
  1. <?php
  2. $HTMLarray
  3.  
  4. $poziom_zagniezdzenia = array('html', 'body');
  5.  
  6. $Wskaznik = & $HTMLarray;
  7. foreach( $poziom_zagniezdzenia As $sKey ) {
  8. $Wskaznik = & $Wskaznik[$sKey];
  9. }
  10.  
  11. $Wskaznik == $HTMLarray['html']['body'];
  12.  
  13. // Jak zrobisz
  14. $Wskaznik['p'] = 'akapit';
  15.  
  16. // To będzie odpowiednikiem
  17. $HTMLarray['html']['body']['p'] = 'akapit';
  18. ?>


Wydaje mi się że to powinno działać, ale bez testowania.
matiszak
Ohh dzięki za rade. Ja myślałem że referencje są tylko w C/C++ a tu się okazuje ze w PHP tez winksmiley.jpg Jeszcze raz wielkie dzięki
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.