Carbon_Fields\Helper\Helper::expand_nested_field PHP Method

expand_nested_field() public static method

Recursively expand the subfields of a complex field.
public static expand_nested_field ( array $input_groups, array $row, array $field_name ) : array
$input_groups array Input groups.
$row array Data row (key and value).
$field_name array Field name pieces.
return array Expanded data.
    public static function expand_nested_field($input_groups, $row, $field_name)
    {
        $subfield_key_token = $field_name['key'] . '_' . $field_name['sub'] . '-' . $field_name['trailing'];
        if (!preg_match(self::get_complex_field_regex($field_name['key']), $subfield_key_token, $subfield_name)) {
            return $input_groups;
        }
        $input_groups[$field_name['index']][$field_name['key']][$subfield_name['index']]['_type'] = $subfield_name['group'];
        if (!empty($subfield_name['trailing'])) {
            $input_groups[$field_name['index']][$field_name['key']] = self::expand_nested_field($input_groups[$field_name['index']][$field_name['key']], $row, $subfield_name);
        } else {
            if (!empty($subfield_name['sub'])) {
                $input_groups[$field_name['index']][$field_name['key']][$subfield_name['index']][$subfield_name['key']][$subfield_name['sub']] = $row['field_value'];
            } else {
                $input_groups[$field_name['index']][$field_name['key']][$subfield_name['index']][$subfield_name['key']] = $row['field_value'];
            }
        }
        return $input_groups;
    }