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.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
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:
52.9 ms | 402 KiB | 62 Q