3v4l.org

run code in 500+ PHP versions simultaneously
<?php $weights = ['1 Kg','300 g','1.5 Kg','20.5 g','5 Kg']; $r = []; foreach ($weights as $v) { if (strpos($v, 'g') !== false) {$k = 1;} // 1 g if (strpos($v, 'Kg') !== false) {$k = 1000;} // 1 kilogram = 1000 g $r[floatval($v)*$k] = $v; } ksort($r);//ksort used to sort array by key print_r($r);
Output for 8.1.0 - 8.1.34, 8.2.0 - 8.2.30, 8.3.0 - 8.3.30, 8.4.1 - 8.4.21, 8.5.0 - 8.5.7
Deprecated: Implicit conversion from float 20.5 to int loses precision in /in/1btER on line 12 Array ( [20] => 20.5 g [300] => 300 g [1000] => 1 Kg [1500] => 1.5 Kg [5000] => 5 Kg )
Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30
Array ( [20] => 20.5 g [300] => 300 g [1000] => 1 Kg [1500] => 1.5 Kg [5000] => 5 Kg )

preferences:
90.7 ms | 1279 KiB | 4 Q