$array = [
(object)["date" => "+2 minutes","order" => 2],
(object)["date" => "+2 minutes","order" => 1],
(object)["date" => "+1 minutes","order" => 2],
];
usort($array, function($a, $b) {
$v1 = abs(strtotime("now") - strtotime($a->date)) <=> abs(strtotime("now") - strtotime($b->date));
return $v1 ? $v1 : ($a->order <=> $b->order);
});
echo "<pre>";
var_export($array);
Выход:
array (
0 =>
(object) array(
'date' => '+1 minutes',
'order' => 2,
),
1 =>
(object) array(
'date' => '+2 minutes',
'order' => 1,
),
2 =>
(object) array(
'date' => '+2 minutes',
'order' => 2,
),
)