Die (?:...)
Konstruktion mit regulärem Ausdruck ist eine nicht erfassende Gruppe . Das bedeutet, dass der Chunk nicht separat in einem Teil des Arrays $mathces
zurückgegeben wird. Dies ist in diesem Fall nicht unbedingt notwendig, ist aber eine nützliche Konstruktion, die man kennen sollte.
Hinweis: Aufruf von floatval()
für die Elemente ist nicht unbedingt notwendig, wie es bei PHP der Fall ist jonglieren Sie die Typen im Allgemeinen richtig, wenn Sie versuchen, sie in einer arithmetischen Operation oder ähnlichem zu verwenden. Es tut aber nicht weh, besonders wenn man nur ein Liner ist.
Getestet und es funktioniert auf allen oben genannten Strings.
Dieses Beispiel unterstützt auch Zahlen wie .11 , da es sich um gültige Zahlen handelt. $matches[0]
wird 152.15 , 12.34 und 0.11 enthalten, da Sie das Ergebnis in float umwandeln. Wenn nicht, wird 0.11 als .11 angezeigt. Ich würde Cast mit array_map
eingeben.
Sie können die Werte für alles Mathe verwenden, ohne sie zu typisieren. Casting wird nur benötigt, wenn sie direkt gedruckt werden.