Selecionar objeto PHP em uma array com valor máximo de uma propriedade

Dado:

$casas = [
  'casa1' => [
    'quarto' => 2,
    'banheiro' => 1,
    'garagem' => 'no',
  ],
  'casa2' => [
    'quarto' => 4,
    'banheiro' => 4,
    'garagem' => 'no',
  ],
  'casa3' => [
    'quarto' => 3,
    'banheiro' => 2,
    'garagem' => 'yes',
  ],
];

É possível usar a função array_reduce() para encontrar a casas com o maior número de banheiros da seguinte forma.

$casa_max_banheiros = array_reduce($casas, function($casa_max, $casa_atual) {
  return ($casa_max['banheiro'] > $casa_atual['banheiro']) ? $casa_max : $casa_atual;
}, reset($casas));

 

Tags