Splitten einer Variabelen
martinli
- php
Hallo,
Ich wollt noch mal kurz etwas fragen:
Ich hab folgende Variabele: 51.624178240741 und würde diese gern zerlegen in einen Teil vor dem Komme und einen Teil nach dem Komma.
Wie geht das??
Viele Grüße
Martin
hi,
Ich hab folgende Variabele: 51.624178240741 und würde diese gern zerlegen in einen Teil vor dem Komme und einen Teil nach dem Komma.
Wie geht das??
in dem simplen fall: beispielsweise mittels explode().
gruß,
wahsaga
Also ich wollte das so haben,
dass ich dann nachher sozusagen ein mal als Variabele a den Teil vor dem punkt habe, und als Variabele b den teil hinter dem Punkt.
Und ich weiß nicht ob das mit explode geht. Ich hab so von dem, was ich mir gerade durchgelesen hab das gefühl, dass das nicht geht.
Aber trotzdem herzlichsten dank für die späte hilfe
Martin
hi,
Also ich wollte das so haben,
dass ich dann nachher sozusagen ein mal als Variabele a den Teil vor dem punkt habe, und als Variabele b den teil hinter dem Punkt.
Und ich weiß nicht ob das mit explode geht.
ich aber.
Ich hab so von dem, was ich mir gerade durchgelesen hab das gefühl, dass das nicht geht.
ich habe, auch ohne erneut im manual nachzuschauen, das gefühl, dass explode() gut passen sollte.
allerdings hast du sicher auch gelesen, dass explode() ein array zurückgibt.
solltest du noch nicht wissen, wie man auf dessen einzelne elemente zugreift, dann empfehle ich als gutenachtlektüre auch noch http://www.php.net/manual/de/language.types.array.php.
gruß,
wahsaga
Ich hab folgende Variabele: 51.624178240741 und würde diese gern zerlegen in einen Teil vor dem Komme und einen Teil nach dem Komma.
Wenn du die Zahl als Strings weiterverarbeitest, dann ist explode ganz gut geeignet:
list($vormkomma, $nachmkomma) = explode('.', $zahl);
Das gibt aber ein Problem, wenn kein Komma drin ist...
Wenn das der Fall werden kann und ich trotzdem nicht auf explode verzichten will, dann mach ich das gern so:
list($vormkomma, $nachmkomma) = array_merge(explode('.', $zahl), array(''));
Damit übergebe ich immer ein Array mit mindestens zwei Elemente an list und das schimpft dann nicht.
Wenn du die Teile als Zahlen zum weiterrechnen brauchst, dann nimm das:
$vormkomma = floor($zahl);
$nachmkomma = $zahl - floor($zahl);
Hello,
Wenn du die Zahl als Strings weiterverarbeitest, dann ist explode ganz gut geeignet:
list($vormkomma, $nachmkomma) = explode('.', $zahl);
Diese ganzen Einzeiler sehen immer ganz nett und intelligent aus, aber was ist geben eine vernünftige Funktion einzuwenden, die die Grenzfälle und Ausnahmen auch behandelt?
Was ist z.B., wenn explode() drei Arrayelemente erzugt? Dann wird ja wohl irgendwas nicht stimmen mit der Eingangsgröße und man müsste eine Exception auslösen (oder zumindest 'false' zurückgeben).
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Wenn du die Zahl als Strings weiterverarbeitest, dann ist explode ganz gut geeignet:
list($vormkomma, $nachmkomma) = explode('.', $zahl);
Diese ganzen Einzeiler sehen immer ganz nett und intelligent aus, aber was ist geben eine vernünftige Funktion einzuwenden, die die Grenzfälle und Ausnahmen auch behandelt?
Was ist z.B., wenn explode() drei Arrayelemente erzugt? Dann wird ja wohl irgendwas nicht stimmen mit der Eingangsgröße und man müsste eine Exception auslösen (oder zumindest 'false' zurückgeben).
Das muss man im konkreten Fall selbst abschätzen. Wenn $zahl aus einer nicht vertrauenswürdigen Quelle kommt, ist der Aufwand sicher gerechtfertigt, nicht jedoch wenn es z.B. aus einem float-Feld einer DB kommt.