diff options
Diffstat (limited to 'includes')
-rw-r--r-- | includes/form.inc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/includes/form.inc b/includes/form.inc index 170badbb0..964066a1d 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -1109,10 +1109,11 @@ function form_builder($form_id, $element, &$form_state) { // Check to see if a tree of child elements is present. If so, // continue down the tree if required. $element[$key]['#parents'] = $element[$key]['#tree'] && $element['#tree'] ? array_merge($element['#parents'], array($key)) : array($key); - $array_parents = isset($element['#array_parents']) ? $element['#array_parents'] : array(); - $array_parents[] = $key; - $element[$key]['#array_parents'] = $array_parents; } + // Ensure #array_parents follows the actual form structure. + $array_parents = isset($element['#array_parents']) ? $element['#array_parents'] : array(); + $array_parents[] = $key; + $element[$key]['#array_parents'] = $array_parents; // Assign a decimal placeholder weight to preserve original array order. if (!isset($element[$key]['#weight'])) { |