title: Extracting params from a form with deeply nested arrays of values
body: <p>Let's say that I have a form that is used for adding a new product. Each product may have multiple sizes where each size, in its turn, may have multiple options. The form would look something like that:</p>
  
  <pre><code>&lt;form accept-charset="UTF-8" action="/products?_format=json" method="post"&gt;
  
    &lt;input id="product_name" name="product[name]" type="text"&gt;
  
    &lt;input id="product_product_sizes_name" name="product[product_sizes][][name]" type="text"&gt;
  
    &lt;input id="product_product_sizes_product_size_options_name" name="product[product_sizes][][product_size_options][][name]" type="text"&gt;
    &lt;input id="product_product_sizes_product_size_options_size" name="product[product_sizes][][product_size_options][][size]" type="text"&gt;
  
    &lt;input id="product_product_materials_name" name="product[product_materials][][name]" type="text"&gt;
  
    &lt;button type="submit"&gt; Create &lt;/button&gt;
  
  &lt;/form&gt;
  </code></pre>
  
  <p>My purpose here is to receive a nested map in the controller in order to handle the data and I would expect to receive a map like this:</p>
  
  <pre><code>%{
    "product" =&gt; 
      %{
        "name" =&gt; "value", 
        "product_materials" =&gt; [
          %{
            "name" =&gt; "value"
          }
        ], 
        "product_sizes" =&gt; [
          %{
            "name" =&gt; "value",
            "product_size_options" =&gt; [
              %{
                "name" =&gt; "value",
                "size" =&gt; "value"
              }
            ]
          }
        ]
      }
  }
  </code></pre>
  
  <p>but instead what I get is this:</p>
  
  <pre><code>%{
    "product" =&gt; 
      %{
        "name" =&gt; "value", 
        "product_materials" =&gt; [
          %{
            "name" =&gt; ""}
        ], 
        "product_sizes" =&gt; [
          %{
            "name" =&gt; ""
          }, 
          %{
            "product_size_options" =&gt; [
              %{
                "name" =&gt; ""
              }
            ]
          }, 
          %{
            "product_size_options" =&gt; [
              %{
                "size" =&gt; ""
              }
            ]
          }
        ]
      }
  }
  </code></pre>
  
  <p>So I am wondering if I am doing something wrong here and it is actually possible to change the form names and receive the map that I expect or this is not the case and I should use explicit indexes (as in <code>[0]</code>, <code>[1]</code> and so on instead of <code>[]</code>) or something of the kind and manually merge the data after submission?</p>