Zahl zerlegen

msmopic

Mitglied
Hallo,

wie zerlege ich eine Zahl in einzelne Zahlen, um diese dann weiterzuverarbeiten?

Bsp.:
$zahl = 13945;

Als Ergebnis sollte ich dann 5 Variablen erhalten mit folgendem Inhalt:
$zahl1 = 1
$zahl2 = 3
$zahl3 = 9
$zahl4 = 4
$zahl5 = 5

Ich möchte NICHT, dass die Zahlen in Strings umgewandelt werden.
Wer kann helfen?
 
Besser, Du beschäftigst Dich mit Arrays. Für diesen Zweck sind fünf einzelne Variablen ziemlicher Unsinn. Hier ein Beispiel:
PHP:
<?php

function buildDigits($int) {
    if ($int<=0 || !is_int($int) || $int != floor($int)) {
        return 'The value must be a positive integer';
    }
    $digits=array();
    while ($int>0) {
        array_unshift($digits,$int % 10);
        $int=floor($int / 10);
    }
    return $digits;
}

$i=13945;
$d=buildDigits($i);
print_r($i);
echo "<br>\n";
print_r($d);

?>
Gruß hpvw
 
Das ist eine gute Frage!
Genau das selbe bräuchte ich auch! Hoffe das geht :)

EDIT: Wie kann man dat was hpvw geschrieben hat jetzt weiterverarbeiten?
 
Zuletzt bearbeitet:
Danke für die schnelle Antwort.
Es hat auch geklappt, gibt es denn aber keine einfachere Lösung, bzw. brauche ich nur eine passende Funktion, die die Aufgabe erledigt...?:confused:
 
msmopic hat gesagt.:
Danke für die schnelle Antwort.
Es hat auch geklappt, gibt es denn aber keine einfachere Lösung, bzw. brauche ich nur eine passende Funktion, die die Aufgabe erledigt...?:confused:
PHP bringt viele fertige Funktionen mit, aber mir ist keine bekannt, die mathematisch Zahlen in ihre Ziffern zerlegt.
Du möchtest es ja nicht als String verarbeiten, aber damit könnte man auch auf die einzelnen Ziffern zugreifen, z.B.:
PHP:
$einer = $zahl{strlen($zahl-1)};
$zehner = $zahl{strlen($zahl-2)};
Was verstehst Du unter einfacher und wie ist "brauche ich nur eine passende Funktion" zu verstehen?

Bob38 hat gesagt.:
EDIT: Wie kann man dat was hpvw geschrieben hat jetzt weiterverarbeiten?
Was hast Du damit vor? Über die Array-Elemente kannst Du auf die einzelnen Ziffern zugreifen.
Du kannst [phpf]array_unshift[/phpf] auch in [phpf]array_push[/phpf] ändern. Dann stehen die "Einer" im Array-Index 0, die "Zehner" im Array-Index 1 und so weiter.

Gruß hpvw
 
Zurück