3v4l.org

run code in 150+ php & hhvm versions
Bugs & Features
<?php function roundToValues( $tax, array $possibleTaxes ) { $differences = array(); foreach( $possibleTaxes as $possibleTax) { echo $possibleTax."\n"; $differences[ $possibleTax ] = abs($possibleTax - $tax); var_dump( $differences ); } return array_search(min($differences), $differences); } $possibleTaxes = array( '0' => '0', '20' => '0-20', '50' => '20-50', '100' => '50-100', '200' => '100-200', '500' => '200-500', ); var_dump( roundToValues('49.99',$possibleTaxes) ); ?>
based on v3vLd
Output for 7.1.0
0 array(1) { [0]=> float(49.99) } 0-20 Notice: A non well formed numeric value encountered in /in/1BRhc on line 6 array(2) { [0]=> float(49.99) ["0-20"]=> float(49.99) } 20-50 Notice: A non well formed numeric value encountered in /in/1BRhc on line 6 array(3) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) } 50-100 Notice: A non well formed numeric value encountered in /in/1BRhc on line 6 array(4) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) } 100-200 Notice: A non well formed numeric value encountered in /in/1BRhc on line 6 array(5) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) ["100-200"]=> float(50.01) } 200-500 Notice: A non well formed numeric value encountered in /in/1BRhc on line 6 array(6) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) ["100-200"]=> float(50.01) ["200-500"]=> float(150.01) } string(6) "50-100"
Output for 5.1.0 - 5.6.28, hhvm-3.10.0 - 3.12.0, 7.0.0 - 7.0.14
0 array(1) { [0]=> float(49.99) } 0-20 array(2) { [0]=> float(49.99) ["0-20"]=> float(49.99) } 20-50 array(3) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) } 50-100 array(4) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) } 100-200 array(5) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) ["100-200"]=> float(50.01) } 200-500 array(6) { [0]=> float(49.99) ["0-20"]=> float(49.99) ["20-50"]=> float(29.99) ["50-100"]=> float(0.009999999999998) ["100-200"]=> float(50.01) ["200-500"]=> float(150.01) } string(6) "50-100"
Output for 5.0.0 - 5.0.5
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/1BRhc on line 2
Process exited with code 255.
Output for 4.4.2 - 4.4.9
Parse error: syntax error, unexpected T_ARRAY, expecting '&' or T_VARIABLE or T_CONST in /in/1BRhc on line 2
Process exited with code 255.
Output for 4.3.0 - 4.3.1, 4.3.5 - 4.4.1
Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE or T_CONST in /in/1BRhc on line 2
Process exited with code 255.
Output for 4.3.2 - 4.3.4
Parse error: parse error, expecting `'&'' or `T_VARIABLE' or `T_CONST' in /in/1BRhc on line 2
Process exited with code 255.