3v4l.org

run code in 300+ PHP versions simultaneously
<?php $tests = [ '1,000.00', '1,000.000', '1.000,00', '1.000,000', '1.00', '1.000', '1,00', '1,000', ]; var_export( preg_replace_callback( '/\.(?=.*,)|,(?=\d*$)/', fn($m) => ['.' => ',', ',' => '.'][$m[0]], $tests ) );
Output for 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
array ( 0 => '1,000.00', 1 => '1,000.000', 2 => '1,000.00', 3 => '1,000.000', 4 => '1.00', 5 => '1.000', 6 => '1.00', 7 => '1.000', )

preferences:
62.82 ms | 406 KiB | 5 Q