3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ [ "item" => 'apple', "quality" => 3, "store" => 'freds', "price" => 2 ], [ "item" => 'pear', "quality" => 1, "store" => 'bobs', "price" => 3 ], [ "item" => 'banana', "quality" => 2, "store" => 'freds', "price" => 1 ], [ "item" => 'kiwi', "quality" => 2, "store" => 'sams', "price" => 4 ], [ "item" => 'coconut', "quality" => 2, "store" => 'sams', "price" => 6, ], [ "item" => 'lime', "quality" => 3, "store" => 'sams', "price" => 5 ] ]; usort($data, function ($a,$b){ if($a['quality']==$b['quality']){ if($a['store']==$b['store']){ if($a['price']==$b['price']){ return 0; }else{ return $a['price']>$b['price']?-1:1;//Descending } }else{ return $a['store']<$b['store']?-1:1;//Ascending } }else{ return $a['quality']<$b['quality']?-1:1;//Ascending } }); var_dump($data);
Output for git.master_jit, git.master, rfc.property-hooks
array(6) { [0]=> array(4) { ["item"]=> string(4) "pear" ["quality"]=> int(1) ["store"]=> string(4) "bobs" ["price"]=> int(3) } [1]=> array(4) { ["item"]=> string(6) "banana" ["quality"]=> int(2) ["store"]=> string(5) "freds" ["price"]=> int(1) } [2]=> array(4) { ["item"]=> string(7) "coconut" ["quality"]=> int(2) ["store"]=> string(4) "sams" ["price"]=> int(6) } [3]=> array(4) { ["item"]=> string(4) "kiwi" ["quality"]=> int(2) ["store"]=> string(4) "sams" ["price"]=> int(4) } [4]=> array(4) { ["item"]=> string(5) "apple" ["quality"]=> int(3) ["store"]=> string(5) "freds" ["price"]=> int(2) } [5]=> array(4) { ["item"]=> string(4) "lime" ["quality"]=> int(3) ["store"]=> string(4) "sams" ["price"]=> int(5) } }

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
29.88 ms | 408 KiB | 5 Q