Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwne zachowanie tablic (+SimpleXML)
mikolajjj
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 23.08.2008

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


Witam,
mam problem, który po prostu przerasta moją jaźn. mam w kodzie php zmienną zdefiniowaną z elementu innej tablicy i owa zmienna raz zachowuje się jak tablica a przy innym rodzaju wywołania jak zwykły string.
już tłumaczę - wyciągam z pliku xml-owego konkretne węzły biblioteką SimpleXML (wykorzystując ścieżki Xpath), nie będę wyjaśniał całego kodu tylko skupię się na fragmencie:

  1. $row = array();
  2. foreach ($paths as $path) {
  3. $data = $content->xpath($path);
  4. $data2 = $data[$i];
  5. echo '<td>'.$data[$i].'</td>';
  6.  
  7. echo '<pre>';
  8. print_r($data[$i]);
  9. echo '</pre>';
  10.  
  11. }


teraz tak: $content to dokument html, z którego wyciągam dane, $paths to zestaw ścieżek, no a $path to pojedyncza ścieżka (np. '//a'). to tłumaczę pro forma bo to działa. $data to skomplikowana tablica SimpleXML, zawierająca m. in. dane mnie interesujące, fragment tego wygląda tak:
  1. [0] => SimpleXMLElement Object
  2. (
  3. [@attributes] => Array
  4. (
  5. [onclick] => gbar.logger.il(1,{t:1});
  6. [class] => gbzt gbz0l gbp1
  7. [id] => gb_1
  8. )
  9.  
  10. [span] => Array
  11. (
  12. [0] => SimpleXMLElement Object
  13. (
  14. [@attributes] => Array
  15. (
  16. [class] => gbtb2
  17. )
  18.  
  19. )
  20.  
  21. [1] => Wyszukiwarka
  22. )
  23.  
  24. )
  25.  
  26. )

i teraz coś czego nie rozumiem, echo '<td>'.$data[$i].'</td>'; drukuje mi co innego (to co zażądałem ścieżką xpath), natomiast wydrukowanie TEJ SAMEJ zmiennej print_r daje mi taką rozbudowaną tablicę, to samo z co innego,

czy ktoś wie dlaczego tak się dzieje?

Ten post edytował mikolajjj 14.12.2012, 18:04:54
Go to the top of the page
+Quote Post

Posty w temacie


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: 22.08.2025 - 11:03