Передача массивов через форму в PHP

Александр Кичатов

Мы можем объединить несколько элементов формы и получить их на сервере в виде массива. Это делается с помощью манипуляций с атрибутом name.

Так можно получить обычный числовой массив:

<form>
    <input type="text" name="first_name">
    <input type="text" name="nums[]">
    <input type="text" name="nums[]">
    <input type="text" name="nums[]">
    <input type="submit">
</form>

При отправке формы содержимое $_GET будет таким:

Array
(
    [name] => Значение1
    [nums] => Array
        (
            [0] => Значение2
            [1] => Значение3
            [2] => Значение4
        )

)

Разумеется, мы можем создавать и ассоциативные массивы, причём любого уровня вложенности:

<form>
    <input type="text" name="product[name]">
    <input type="text" name="product[price]">
    <input type="text" name="product[1][2][]">
    <input type="text" name="product[1][2][]">
    <input type="submit">
</form>

Содержимое $_GET будет таким:

Array
(
    [product] => Array
        (
            [name] => Значение 1
            [price] => Значение 2
            [1] => Array
                (
                    [2] => Array
                        (
                            [0] => Значение 3
                            [1] => Значение 4
                        )
                )
        )
)

Комментарии