Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> simplexml2array, Funkcja, PHP 5
aleksander
post 18.01.2005, 22:38:57
Post #1





Grupa: Przyjaciele php.pl
Postów: 742
Pomógł: 0
Dołączył: 14.12.2003
Skąd: Gdańsk, Trójmiasto

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


witam,

Znalazłem na php.net funkcję do konwersji drzewa obiektów simplexml na tablice. niestety miała ona błąd (można o tym poczytać na http://forum.php.pl/index.php?showtopic=24918 ). Po wielu staraniach udało mi się obejść ten "bug". Oto mój twór:
  1. <?php
  2. $obiekty = array();
  3. $result = array();
  4. function xml2array( $obj, &$tree )
  5. {
  6. foreach( (array)$obj as $key => $val )
  7. {
  8. if( is_object( $val ) )
  9. {
  10. xml2array( $val, $tree );
  11. }
  12. else
  13. {
  14. $tree[$key] = $val;
  15. }
  16. }
  17. }
  18. function walkArrays( $arr, &$result )
  19. {
  20. foreach( $arr as $key => $val )
  21. {
  22. if( is_object( $val ) )
  23. {
  24. $result[$key] = (array)$val;
  25. }
  26. if( is_array( $val ) )
  27. {
  28. walkArrays( $val, $result[$key] );
  29. }
  30. if( is_string( $val ) )
  31. {
  32. $result[$key] = (string)$val;
  33. }
  34. }
  35. }
  36.  
  37.  
  38. $o = simplexml_load_file( 'xml.xml' );
  39. recursive_obj2array( $o, $obiekty );
  40. walkArrays( $obiekty, $result );
  41. echo '<pre>';
  42. print_r( $result );
  43. echo '</pre>';
  44. ?>
Popracuję jeszcze nad tym, aby to wszystko zamknęło się w jednej funkcji smile.gif tymczasem pozdrawiam
Go to the top of the page
+Quote Post
NuLL
post 15.06.2005, 16:33:15
Post #2





Grupa: Zarejestrowani
Postów: 2 262
Pomógł: 21
Dołączył: 3.05.2004
Skąd: Sopot, Krakow, W-wa

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


  1. <?php
  2.  
  3. function object2array ( $object )
  4. {
  5.  if ( !is_object ( $object ) )
  6.  return $object;
  7.  
  8.  $return = array ();
  9.  
  10.  $var = get_object_vars ( $object );
  11.  
  12.  while ( list ( $k, $v ) = each ( $var ) )
  13.  $return [ $k ] = object2array ( $v );
  14.  return $return;
  15. }
  16.  
  17. ?>

Trochę krótsza smile.gif


--------------------
Javascript, Coffeescript, Node.js, Mongo, CouchDb, chmury, workery & inne bajery - zycie jest zbyt krotkie aby miec nudna prace :)
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 Wersja Lo-Fi Aktualny czas: 19.10.2020 - 16:28