Multidimensional arrays in form data
Readers are probably aware that you can pass an array to a script from a HTML form.
For instance, if you want to pass multiple checkbox items, or data from a SELECT where the user can select more than one option:
<INPUT TYPE=checkbox VALUE=1 NAME=myData[]>
<INPUT TYPE=checkbox VALUE=2 NAME=myData[]>
<INPUT TYPE=checkbox VALUE=3 NAME=myData[]>
or
<SELECT NAME=myData[] MULTIPLE>
will appear in the PHP Superglobal $_GET/$_POST arrays as an array:
$_GET['myData'] or $_POST['myData']
What users may not know is that you can also pass a multi-dimensional array from a form. This is particularly handy if your form is dynamically created with a variable input names.
For instance, if you want to create a checkbox that a user can tick and then add data that is associated with that checkbox.
Say you have a property website, and you allow a seller to specify that a property is close to the airport (checkbox) and then allow the seller to specify the distance in km and miles from the airport using 2 SELECTs.
Your checkbox would form the first layer of the array:
<INPUT TYPE=checkbox VALUE=1 NAME=myData[x]>
Where x = discreet data that refers to a property being ‘close to an airport’.
Your 2 SELECTS would then be:
<SELECT NAME=myData[x][0]>
<SELECT NAME=myData[x][1]>
This will place the multi-dimensional array $myData in either $_GET or $_POST, which you can use like any other multi-dimensional array.