3v4l.org

run code in 300+ PHP versions simultaneously
<?php foreach (["$1", "$1.", "$1.00", "$10.00", "$1000.00", "$1,000", "1,000.00", "10,000", "10,000.00", "100,000", "100,000.00", "1,000,000", "1,000,000.00"] as $num) { _parseFloat($num); } function _parseFloat($sz) { $sz = _digits($sz); var_dump($sz); if (is_numeric($sz)) { return $sz; } if (!is_string($sz)) { return false; } $third = $sz{strlen($sz)-3}; if ($third === ',') { $sz = str_replace('.', '', $sz); $sz = str_replace(',', '.', $sz); $sz = (double)$sz; } else if ($third === '.') { $sz = str_replace(',', '', $sz); $sz = (double)$sz; } else { $sz = (double) $sz; } return $sz; } function _digits($string) { $matches = []; preg_match_all('/[(0-9\,\.]+/', $string, $matches); if (count($matches) > 0) { return (int) implode('', $matches[0]); } return false; }

preferences:
38.62 ms | 402 KiB | 5 Q