Garfield hat geschrieben:Hallo PHP-Götter
Ich verzweifle seit Stunden darüber, eine Lösung zu finden, wie man aus der Zahl:
14506743
folgendes macht:
14.506.743
und zwar per PHP-Anweisung. Vielleicht suche ich auch einfach nur falsch? Auf jeden Fall finde ich die Lösung nicht
HIIIIIIIIILFE bitte

Code: Alles auswählen
$zahl = 14506743 ;
function besserlasbareZahl( $zahl )
{
$zahl2=''; $x=0;
$len = strlen( $zahl );
while ( $len-- )
{
$zahl2 = substr( $zahl, $len, 1) . $zahl2;
if ( ++$x==3 && $len )
{
$zahl2 = '.' . $zahl2; $x=0;
}
}
return( $zahl2 );
}
echo( besserlasbareZahl( $zahl ) );
eleganter wäre
string strrev ( string $string )
am Anfang und dann den Neuen STring nur "hinten" anhängen, statt dauernd vorne was einzuschieben
Dazu müßte man aber erstmal ermitteln wieviele Stellen links vor dem ersten "." kommen ....
... aber, geht doch ... elegant und ohne "Vorberechnung"
Code: Alles auswählen
function besserlasbareZahl( $zahl )
{
$zahl2=''; $x=0;
$len = strlen( $zahl );
while ( $len-- )
{
$zahl2 .= substr( $zahl, $len, 1);
if ( ++$x==3 && $len )
{
$zahl2 .= '.'; $x=0;
}
}
return( strrev($zahl2) );
}
Aber, nocheleganter ist, wenn du einfach den Befehl nimmst den es schon gibt
(der ärgert mich immer, weil ich vergesse das da noch ein "round" Parameter drin steckt
echo ( number_format( $zahl, '.' , '.' ) );
= ERROR
Kopf an die Wand ....
echo ( number_format( $zahl, 0, '.' , '.' ) );