3v4l.org

run code in 300+ PHP versions simultaneously
<?php $sortingArray = [ '0' => [ 'id' => 1287, 'data-price' => '£209.95', 'size' => '120 x 60' ], '1' => [ 'id' => 1245, 'data-price' => '£29.95', 'size' => '30 x 20' ], '2' => [ 'id' => 1264, 'data-price' => '£15.95', 'size' => '20 x 15' ], '3' => [ 'id' => 1263, 'data-price'=> '£14.95', 'size' => '18 x 13' ], '4' => [ 'id' => 1281, 'data-price' => '£119.95', 'size' => '75 x 50' ], '5' => [ 'id' => 1275, 'data-price' => '£94.95', 'size' => '60 x 40' ], '6' => [ 'id' => 1315, 'data-price' => '£39.95', 'size' => '50 x 13' ], ]; function array_sort(array $array, string $on, string $order = 'ASC') { $sortableArray = $array; switch ($on) { case 'size': usort($sortableArray, 'sortBySize'); break; case 'price': usort($sortableArray, 'sortByPrice'); break; default: return $sortableArray; break; } if (strtoupper($order) === 'DESC') { return array_reverse($sortableArray); } return $sortableArray; } function sortByPrice(array $a, array $b) { return (float) mb_substr($a['data-price'], 1) <=> (float) mb_substr($b['data-price'], 1); } function sortBySize(array $a, array $b) { return (int) $a['size'] <=> (int) $b['size']; } echo 'Price, ascending:'.PHP_EOL; var_dump(array_sort($sortingArray, 'price', 'asc')); echo PHP_EOL.'Price, descending:'.PHP_EOL; var_dump(array_sort($sortingArray, 'price', 'DESC')); echo PHP_EOL.'Price, bogus order:'.PHP_EOL; var_dump(array_sort($sortingArray, 'price', 'RHINO')); echo PHP_EOL.'Size, ascending:'.PHP_EOL; var_dump(array_sort($sortingArray, 'size', 'ASC')); echo PHP_EOL.'Size, descending:'.PHP_EOL; var_dump(array_sort($sortingArray, 'size', 'desc')); echo PHP_EOL.'Size, bogus order:'.PHP_EOL; var_dump(array_sort($sortingArray, 'size', 'ELEPHANT')); echo PHP_EOL.'Bogus criteria (retains the order):'.PHP_EOL; var_dump(array_sort($sortingArray, 'whim')); echo PHP_EOL.'Bogus criteria (retains the order):'.PHP_EOL; var_dump(array_sort($sortingArray, 'whim', 'desc'));

Abusive script

This script was stopped while abusing our resources

This is an error 500

Value for `_results` contains invalid data `array`


preferences:
178.2 ms | 3041 KiB | 21 Q