Я думаю, вы хотите использовать функцию usort , что-то вроде
function compare($a, $b){
$p1 = $a["premium"];
$p2 = $b["premium"];
if($p1["Monthly"] == $p2["Monthly"]){
// compare by quarterly
...
}else{
if($p1["Monthly"] < $p2["Monthly"])then return -1;
else return 1;
}
}
usort($prices, "compare");
, где $prices
- ваш массив. Функция сравнения не реализована полностью, просто чтобы показать идею. Кроме того, поскольку похоже, что в ценовом массиве могут отсутствовать элементы (т. Е. Последний пропускает квартальные и полугодовые данные), необходимо сначала проверить (до сравнения), существуют ли элементы, и предпринять соответствующие действия в случае отсутствия одного или обоих элементов .