3v4l.org

run code in 300+ PHP versions simultaneously
<?php $amsterdam = [ 65 => [ 'something' => false, 'data' => [ 'foo' => 'boo', 'price' => 100 ] ], 173 => [ 'something' => false, 'data' => [ 'foo' => 'hoo', 'price' => 2500 ] ], ]; $prague = [ 132 => [ 'something' => false, 'data' => [ 'foo' => 'boo', 'price' => 2100 ] ], 956 => [ 'something' => false, 'data' => [ 'foo' => 'hoo', 'price' => 2500 ] ], ]; $lisboa = [ 175 => [ 'something' => false, 'data' => [ 'foo' => 'boo', 'price' => 6500 ] ], 64 => [ 'something' => false, 'data' => [ 'foo' => 'hoo', 'price' => 20 ] ], ]; $cities = [ 'amsterdam' => $amsterdam, 'prague' => $prague, 'lisboa' => $lisboa ]; function getMinimumPrice($cityArray) { return array_reduce($cityArray, function($carry, $item) { return $carry === 0 ? $item['data']['price'] : min($carry, $item['data']['price']); }, 0); } uasort($cities, function($city1, $city2) { $priceCity1 = getMinimumPrice($city1); $priceCity2 = getMinimumPrice($city2); return $priceCity1 <=> $priceCity2; }); var_dump($cities);

preferences:
26.47 ms | 407 KiB | 5 Q