PHP Сортировка изображений по наибольшей ширине и там, где ширина больше высоты

У меня есть массив, как этот:

 array(
0 => array(
width => "213",
height => "50"),
1 => array(
width => "120",
height => "204")
) etc...

Теперь я хочу упорядочить этот массив по изображениям с наибольшей шириной и шириной, которая больше высоты.

Моя попытка сделать это было, используя usort():

usort($results['bossresponse']['images']['results'], function($a, $b) {
return $b['width'] - $a['width'];
});

Но это сортирует изображения только по их ширине, а не если ширина изображения больше, чем высота. Возможно ли это с помощью usort?

2

Решение

Попробуй это:

usort($results['bossresponse']['images']['results'], function($a, $b) {
//Case if A has bigger width than height but B doesn't
if($a["width"]>$a["height"] && !($b["width"]>$b["height"])) return -1;

//Case if B has bigger width than height but A doesn't
if(!($a["width"]>$a["height"]) && $b["width"]>$b["height"]) return 1;

//They both/neither have bigger width than height, so compare widths
if($a["width"]>$b["width"]) return -1;
elseif($b["width"]>$a["width"]) return 1;
else return 0;
});
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]