[PHP] String in float umwandeln

XadreS

Painkiller
ID: 370013
L
4 Mai 2006
3.466
345
Hallo,

ich habe einen string und will den als float haben.
Eigentlich kein Problem, aber mein string ist fett/bold und deswegen krieg ich es nicht auf die Reihe.

PHP:
$string = "780.00 EUR";
$wert = explode(' ',$string);

$wert[0] wäre dann gleich: 780.00

Soweit so gut, aber wie kann ich jetzt einen anderen Wert addieren?
Wenn ich einfach

PHP:
$erg = $wert[0]+$anderer_wert;

mache, dann kommt 0 bei raus. Hab auch versucht den String in float umzuwandeln, aber das funktioniert irgendwie nicht. Ich nehme an, dass es daran liegt, dass $string fett geschrieben ist.
Kriege ich die Formatierung irgendwie weg?

Danke schonmal an die üblichen Verdächtigen :mrgreen:
 
PHP:
<?php

$string = "780.00 EUR";
$wert = explode(' ',$string);  
echo $wert[0]+100;
// Ergebnis: 880

echo $string+100;
// Ergebnis: 880

?>

Was meinst du mit 'fett'? HTML Code?
 
Ja genau. Der String wird halt vorher schon mit HTML Code fett dargestellt.

Also im Prinzip ist

$string = "<b>780.00 EUR</b>";


EDIT: Hat sich erledigt. Hab ne Lösung gefunden:

strip_tags($wert[0]);

Trotzdem danke. Aber dadurch hat sich meine Vermutung bestätigt. Es lag definitiv an dem formatierten String.
 
Zuletzt bearbeitet:
strip_tags($wert[0]);

Trotzdem danke. Aber dadurch hat sich meine Vermutung bestätigt. Es lag definitiv an dem formatierten String.

Das geht, sollte sonst noch irgendetwas stören, würde ich so etwas benutzen:
PHP:
$string = "<b>780.00 EUR</b>"; 
preg_match('/([0-9.]+)/', $string, $matches);

$zahl = (float)$matches[0];
print $zahl+10;
//Ergebnis: 790

Gibt bestimmt auch noch eine bessere Lösung :)

€dit:
Besser wäre es wohl so:
PHP:
$string = "<b>780.00 EUR</b>"; 
preg_match('/(\d+)/', $string, $matches);
$zahl = $matches[0];
print $zahl+10;
//Ergebnis: 790
 
Glaube Ihr habt mich beide etwas falsch verstanden.

Hatte ein Array was ungefähr so aussah:
PHP:
$array = array('124.15','89.78','[B]780.00[/B]');

Danach wollte ich den Wert in einer if-Abfrage vergleichen:
PHP:
if($array[0] == '780.00')
{}

Das hat leider nicht geklappt, da der Wert 780.00 formatiert war, also eine Fettformatierung hatte. Deswegen konnte ich nicht vergleichen. Das strip_tags(); hat mir aber geholfen, die Formatierung vor dem Vergleich zu entfernen.

Trotzdem Danke.