In PHP, wie Float-Wert aus einer gemischten Zeichenfolge erhalten?

8

Ich habe eine Zeichenfolge wie:

%Vor%

Ich möchte nur 55.35 erhalten.

Ich habe es versucht:

%Vor%

Ich habe es auch versucht:

%Vor%

Gemäß der Dokumentation:

  

Strings werden höchstwahrscheinlich 0 zurückgeben, obwohl dies von der   ganz links Zeichen der Zeichenfolge.

Also, flotval und (float) funktionieren anscheinend nur, wenn die Zeichenfolge etwas wie folgt ist: 55.35aAbBcCdDeEfF ... funktioniert aber NICHT, wenn es wie folgt aussieht: aAbBcC55.35dDeEfF

Gibt es eine Möglichkeit, den Float unabhängig von der Position des Texts zu erhalten?

    
Universal Grasp 21.06.2014, 13:23
quelle

7 Antworten

17

Wenn Sie keine regulären Ausdrücke verwenden möchten, verwenden Sie filter_var :

%Vor%     
Danijel 21.06.2014, 13:41
quelle
3

Was Sie haben, kann nicht in einen Float umgewandelt werden, da es aus PHP-Sicht nicht wie ein Float aussieht. Es ist jedoch möglich, den Wert mit Regex zu greifen.

Wenn Sie nicht sicher sind, ob es immer eine Dezimalzahl geben wird. Und Sie versuchen, die Nummer unabhängig von der Position im Text zu bekommen (gemäß Ihrer Frage). Sie könnten verwenden:

%Vor%

Welches die numerischen Werte von den folgenden Zeichenfolgen abruft:

%Vor%

Erläuterung: Ссылка
Demo: Ссылка
PHP-Demo: Ссылка

Im Grunde sucht es nach Zahlen in der Zeichenfolge. Und optional danach auch nach Dezimalzahlen suchen.

    
PeeHaa 21.06.2014 13:32
quelle
1

Sie können eine kleine Funktion ausprobieren, um diesen Wert für Sie zu extrahieren, bevor Sie floatval oder (float) verwenden.

Etwas wie:

%Vor%

teste dann:

%Vor%     
ErickBest 21.06.2014 13:28
quelle
1

Verwenden Sie eine Regex:

%Vor%     
hek2mgl 21.06.2014 13:27
quelle
1

Ich denke ein preg_replace könnte hier hilfreich sein (ungetestet):

%Vor%

Du könntest den Preg etwas erweitern, um nur [number]. [number] zu erhalten, aber in diesem Fall denke ich, dass es funktionieren wird.

    
Matt 21.06.2014 13:30
quelle
0

Ändern der @ hek2mgl-Antwort, um sowohl Float- als auch Integer-Zahlen zu erhalten

%Vor%     
Biswadeep Sarkar 07.01.2018 08:31
quelle
-1
%Vor%     
Max 21.06.2014 13:30
quelle

Tags und Links