Кажется, что должно хватить вызова
ksort($orderGrouped, SORT_NUMERIC)
перед циклом.
Foreach сам назло вам ничего не пересортировывает - как пришло, так и обрабатывает. Порядок ключей в объекте JS не гарантирован, так что, скорее всего, он вам портит малину. Можете убедиться, если сделаете
var_dump($orderGrouped)
в самом начале - наверняка, порядок будет нарушен уже там.
Ну и если у вас свежая версия PHP, то код можно сократить до такого:
$filteredArray = [];
ksort($orderGrouped, SORT_NUMERIC);
foreach($orderGrouped as $group){
array_push($filteredArray, ...$group);
}
А то в вашем варианте array_push лишний и достаточно просто
$filteredArray[] = $groupItem
.