3v4l.org

run code in 300+ PHP versions simultaneously
<?php $input = array( '0' => array( 'ext' => 'jpg', 'height' => '800', 'md5' => '87167a1952911df64a3b1a423c95b32b', 'id' => 'ddf', ), '1' => array( 'ext' => 'png', 'height' => '330', 'md5' => '87167a1952911df64a3b1a423c95b32b', 'id' => '117', ), '2' => array( 'ext' => 'jpg', 'height' => '330', 'md5' => '8d167a1952ds1df64a3b1a423c95b32b', 'id' => '24', ), '3' => array( 'ext' => 'gif', 'height' => '150', 'md5' => '4a4d993ed7bd7d467b27af52d2aaa800', 'id' => '68', ), '4' => array( 'ext' => 'jpg', 'height' => '1024', 'md5' => '912ec803b2ce49e4a541068d495ab570', 'id' => '78', ), '5' => array( 'ext' => 'png', 'height' => '1024', 'md5' => '6a204bd89f3c8348afd5c77c717a097a', 'id' => 'lp', ), '6' => array( 'ext' => 'jpg', 'height' => '800', 'md5' => 'dce4f98878b0c302cb3de0dcd27d8bc8', 'id' => 'cd', ), '7' => array( 'ext' => 'png', 'height' => '800', 'md5' => 'ace4f98878b0c302cb3de0dcd27d8bc8', 'id' => 'mmc', ), '8' => array( 'ext' => 'png', 'height' => '430', 'md5' => 'gce4f98878b0c302cb3de0dcd27d8bc8', 'id' => '115', ), '9' => array( 'ext' => 'png', 'height' => '150', 'md5' => 'xce4f98878b0c302cb3de0dcd27d8bc8', 'id' => '4568', ), '10' => array( 'ext' => 'jpg', 'height' => '150', 'md5' => 'cce4f98878b0c302cb3de0dcd27d8bc8', 'id' => '8777', ), '11' => array( 'ext' => 'gif', 'height' => '400', 'md5' => 'kke4f98878b0c302cb3de0dcd27d8bc8', 'id' => '877', ), '12' => array( 'ext' => 'bmp', 'height' => '500', 'md5' => '89e4f98878b0c302cb3de0dcd27d8bc8', 'id' => '857', ) ); $output = array(); $extensionsWeght = array( 'jpg' => 0, 'png' => 1, 'gif' => 2 ); foreach ($input as $v) { if (!isset($output[$v['height']])) { //If it's a new height, add it $output[$v['height']] = $v; } else { //else, choose the prefered ext [if they have the same ext, the first entry is already choosen] if ($extensionsWeght[$output[$v['height']]['ext']] > $extensionsWeght[$v['ext']]) { $output[$v['height']] = $v; } } } ksort($output); print_r($output ) ;
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.19, 8.3.0 - 8.3.7
Array ( [150] => Array ( [ext] => jpg [height] => 150 [md5] => cce4f98878b0c302cb3de0dcd27d8bc8 [id] => 8777 ) [330] => Array ( [ext] => jpg [height] => 330 [md5] => 8d167a1952ds1df64a3b1a423c95b32b [id] => 24 ) [400] => Array ( [ext] => gif [height] => 400 [md5] => kke4f98878b0c302cb3de0dcd27d8bc8 [id] => 877 ) [430] => Array ( [ext] => png [height] => 430 [md5] => gce4f98878b0c302cb3de0dcd27d8bc8 [id] => 115 ) [500] => Array ( [ext] => bmp [height] => 500 [md5] => 89e4f98878b0c302cb3de0dcd27d8bc8 [id] => 857 ) [800] => Array ( [ext] => jpg [height] => 800 [md5] => 87167a1952911df64a3b1a423c95b32b [id] => ddf ) [1024] => Array ( [ext] => jpg [height] => 1024 [md5] => 912ec803b2ce49e4a541068d495ab570 [id] => 78 ) )

preferences:
172.85 ms | 406 KiB | 215 Q