object/array durchlaufen bis wert nicht mehr vorhanden

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • object/array durchlaufen bis wert nicht mehr vorhanden

    Hallo,
    ich steh grad ein bisschen auf dem Schlauch:
    Code:
    object (
    	[test] => 1
    	[bla] => 2
    	[blubb] => array (
    		[0] => object (
    			[test] => x
    			[bla] => 124
    			[blubb] => array (
    				[0] => object (
    					[test] => sdfkl
    					[bla] => sas
    				)
    			)
    		)
    		[1] => object (
    			[test] => 342
    			[bla] => o
    		)
    	)
    )
    Wie bau ich mir jetzt eine Funktion die mir solange das object immer wieder durchläuft bis es kein blubb mehr gibt - und dann die ganzen Teile einzeln oder in einem array oder sowas ausgibt? also am Ende so in der art:
    Code:
    teil1: test=1 bla=2
    teil2: test=x bla=124
    teil3: test=sdfkl bla= sas
    teil4: test=342 bla=o
    ich weiß vorher nicht wie tief es in der art weiter geht
    Zuletzt geändert von Besth; 19.05.2010, 09:28.
    Mess with the Besth, die like the rest!

  • #2
    PHP: RecursiveArrayIterator - Manual

    Kommentar


    • #3
      PHP-Code:
      $obj=new StdClass;
      $o1=new StdClass;
      $o2=new StdClass;
      $o3=new StdClass;

      $o2->test="sdfkl";
      $o2->bla="sas";

      $o3->test=342;
      $o3->bla="o";

      $o1->test="x";
      $o1->bla=124;
      $o1->blubb=array($o2);

      $obj->test=1;
      $obj->bla=2;
      $obj->blubb=array($o1,$o3);

      function 
      maches($var){
          static 
      $array=array();
          if(
      is_object($var)){
              if(isset(
      $var->test,$var->bla)){
              
      $array[]=array('test'=>$var->test,'bla'=>$var->bla);
              }
              if(isset(
      $var->blubb) && is_array($var->blubb)){
                  return 
      maches($var->blubb);
              }
          }
          elseif(
      is_array($var)){
              foreach(
      $var as $v){
                  
      maches($v);
              }
              return 
      $array;
          }
      }
      print_r(maches($obj)); 
      Slava
      bituniverse.com

      Kommentar

      Lädt...
      X