Я хлопнул бы ваш блок тарифа так вы вид оно собой using asort (поддерживает индексы).
так…
$rate_array = блок [тариф];
asort ($rate_array)
теперь вы имеете блок всех тарифов и индексов в правом заказе. Теперь, я сломал бы врозь все блоки тогда восстановляю одно большое одно с некоторым Кодим вроде как
foreach ($rate_array как $key=>$value) {
$id_value = $id_array [$key];
array_push ($new_id_array);
etc…
}