3v4l.org

run code in 300+ PHP versions simultaneously
<?php $arr = array ( "100" => array( array( "country" => 'France', "city" => 'Paris', "population" => '1800000', ), array( "country" => 'France', "city" => 'Paris', "population" => '2000000', ), array( "country" => 'France', "city" => 'Toulouse', "population" => '500000', ), ), "101" => array( array( "country" => 'Russia', "city" => 'Moscow', "population" => '144000000', ) ) ); foreach($arr as $k => &$ar) { $mins = array_reduce($ar, function ($carry, $item) { $key = $item["country"] . "###" . $item["city"]; $carry[$key] = (isset($carry[$key]) && $item["population"] > $carry[$key]) ? $carry[$key] : $item["population"]; return $carry; }, []); $ar = array_filter($ar, function ($item) use ($mins) { $key = $item["country"] . "###" . $item["city"]; return $mins[$key] == $item["population"]; }); } print_r($arr);
Output for 7.1.25 - 7.1.28, 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.18, 8.3.0 - 8.3.6
Array ( [100] => Array ( [0] => Array ( [country] => France [city] => Paris [population] => 1800000 ) [2] => Array ( [country] => France [city] => Toulouse [population] => 500000 ) ) [101] => Array ( [0] => Array ( [country] => Russia [city] => Moscow [population] => 144000000 ) ) )

preferences:
171.35 ms | 404 KiB | 162 Q