diff --git a/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php b/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php
index cd2ebd126f2f9c020132fda7f73531d172259232..0a60007c7f08be345591202cbcf099a1254b5ad0 100644
--- a/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php
+++ b/src/Plugin/Field/FieldWidget/InlineEntityFormSimple.php
@@ -148,13 +148,18 @@ class InlineEntityFormSimple extends InlineEntityFormBase {
         /** @var \Drupal\Core\Entity\EntityInterface $entity */
         $entity = $element['inline_entity_form']['#entity'];
         $weight = $submitted_values[$delta]['_weight'] ?? 0;
-        $values[$weight] = ['entity' => $entity];
+        $values[] = ['entity' => $entity, 'weight' => $weight];
       }
     }
 
     // Sort items base on weights.
-    ksort($values);
-    $values = array_values($values);
+    usort($values, function ($a, $b) {
+      return $a['weight'] <=> $b['weight'];
+    });
+
+    $values = array_map(function ($item) {
+      return $item['entity'];
+    }, $values);
 
     // Let the widget massage the submitted values.
     $values = $this->massageFormValues($values, $form, $form_state);