[php] while & explode

Goltergaul

Well-known member
ID: 17553
L
26 April 2006
480
7
Hi habe mir bei php.net folgendes besispiel für expolde rausgesucht:
PHP:
$pizza  = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$teile = explode(" ", $pizza);
echo $teile[0]; // Teil1
echo $teile[1]; // Teil2
Kann ich das ganze irgendwie in eine Schleife einbauen die mir das folgendermaßen durchgeht:

echo $teile[0];
echo $teile[1];
...
echo $teile[n];
Eben alle Teile durchgeht. Leider ist die anzahld er Teile nicht bekannt, wie kann ich diese herausfinden?

Danke =)
 
hmm gibt es num_args() überhaupt? ich werde da auf func_num_args() weitergeleitet was mir leider nichts bringt...

edit: @happymaster: count gibt mir die anzahl von arrays aus. Leider liegt hier aber ein String vor :/
 
und wie soll das dann aussehen?

edit: habs selber rausgefunden, ist ja ganz einfach *g*
PHP:
// Beispiel 1
$pizza  = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6";
$teile = explode(" ", $pizza);
echo $teile[0]; // Teil1
echo $teile[1]; // Teil2

foreach($teile as $teil) {
   echo "$teil<br>"; 
}
 
PHP:
$pizza  = 'Teil1 Teil2 Teil3 Teil4 Teil5 Teil6';
$teile = explode(' ', $pizza); 
echo count($teile); //anzahl

steht auch alles im Beispiel 1
 
evtl. hilft dir das

PHP:
function ec_quelle($ec, $cp)  
     {  
          $pattern = '/\|µ\|/m';  
          $quelle = str_replace("\n","|µ|",$ec);  
          $array = preg_split($pattern, $quelle);  
  
          $i=0;  
          while ($i < count($array))   
          {  
               echo "$cp $array[$i]:";  
               $i++;  
               echo "<a href=\"$array[$i]\">"; 
               $i++;  
               $text = preg_replace("/\r|\n/s", "", $array[$i]);  
               echo "$text</a><br />";  
               $i++;       
          }  
     }
ist aus meinem dl script
 
Moin,
hier nochmal mit while.

PHP:
  $pizza  = "Teil1 Teil2 Teil3 Teil4 Teil5 Teil6"; 
  $teile = explode(" ", $pizza); 
  while($i < count($teile))
    {
      echo($teile[intval($i++)]);
    }
 
@tester:

Ich würd $i noch mit 0 initialisieren. Dann kann man sich das intval() auch sparen.
 
Danke =) Aber meine foreach version reicht mir glaube ich.

Eine Frage ergibt sich aber noch in diesem Zusammenhang.
ich habe vor eine lange Kette im Stil von "var1:13|var2:21|blah:huh usw." in die DB zu speichern und dann per

PHP:
$pizza  = "var1:13|var2:21|blah:huh";
$teile = explode("|", $pizza);

foreach($teile as $teil) {
   $subteile = explode(":", $teil);
   $$subteile[0]=$subteile[1];
}

wieder als Variablen einzulesen. Das mache ich deswegen, da ich weder weiß wieviele Variablen gespeichert werden sollen, noch wie diese heißen.
Ist das Sinnvoll oder gibts noch etwas schnelleres?
 
Deswegen frag ich ja :D perfekt danke =)
Edti: Mit serialize() kann ich nur den Inhalt einer Var speichern, aber nicht varname+inhalt? Oder vll als array? Aber dann is der Aufwand ja ähnlich
 
damit kannst du ganze objekte speichern. der key wird dabei natürlich auch mit gespeichert.

einfach mal testen ..