# Zahlen in Ziffern zerlegen



## Flo<H> (9. August 2002)

gibt es in php eine möglichkeit eine zahl in die einzelnen ziffern zu zerlegen???

z.B.:
$zahl = 5694064
-->
$ziffer[1]= 5
$ziffer[2]= 6
$ziffer[3]= 9
....


vielen dank im voraus

Flo


----------



## Interritor (9. August 2002)

Da gibts viel Möglichkeiten ich würde es so machen, da es keine Schleife benötigt und oftmals einen kleinen Geschwindigkeitszuwachs bringt.


```
<?

// Der Zahlen die getrennt werden soll
$string = "123";

// Setzt nach jeder zahl ein Leerzeichen
$string2  = chunk_split("$string",1," ");

// Teilt den String2 nach den Leerzeichen
$array = explode(" ",$string2);


// Beispiel Ausgabe
echo $array[0]."|".$array[1]."|".$array[2];


?>
```


Vielleicht gibts auch ein Function die es direkt macht, aber die kennt ich jetzt nicht!

mfg
Interritor

Hoffe es hilft dir!


----------



## Flo<H> (9. August 2002)

Danke!
Das wird mir auf alle Fälle weiterhelfen.


----------



## Patrick Kamin (10. August 2002)

*-*

Einen String kannst du ganz einfach über den Index ansprechen.

```
$bla = "string";
echo $bla[0].$bla[1].$bla[2]; // Ausgabe "str"
```
Wenn du nun eine Zahl hast, wandel sie dir vorher in einen String um und du hast keine Probleme. Aufpassen musst du nur, wenn du danach noch weiter mit der Zahl bzw. String arbeiten willst, da es bei Rechenaufgaben zum Fehler kommen wird.

Die Konvertierung kannst du per settype() machen.


----------



## Interritor (10. August 2002)

cool hab ich auch noch was dazu gelernt, wusst ich ja garnet.


----------



## Dario Linsky (10. August 2002)

klar geht das. ein string ist ja nichts anderes als ein array aus einzelnen zeichen.


----------



## Flo<H> (10. August 2002)

Danke für die vielen Antworten, werds dann hernach gleich mal testen.


Edit:
Also ich hab das jetzt mal mit:
$zahl = 43545454;
$ziffer = (string) $zahl;
probiert.

Wenn ich jetzt alle Elemente des Arrays ansteuer mit:
echo"<br>$ziffer[0]";
echo"<br>$ziffer[1]";
echo"<br>$ziffer[2]";
echo"<br>$ziffer[3]";
...

funktiniert es wunderbar, aber wenn ich des alles mit einer schleife:
$obergrenze = count($ziffer);
for ($i = 0; $i < $obergrenze; $i ++)
{
   echo"<br>$ziffer[$i]";
}
mache, dann wird mir nur die erste zahl ausgegeben.
Kann mir da wer weiterhelfen???


----------



## Interritor (10. August 2002)

nicht count, sondern
* strlen* 
also 
*$obergrenze = strlen($ziffer);*


----------



## Flo<H> (11. August 2002)

ah Danke jetzt funktionierts!!!


----------

