Массив нескольких выбранных входов
У меня есть эта форма:
<form>
<select name="data[][]" multiple="multiple">
<option>1</option>
<option selected="selected">2</option>
</select>
<select name="data[][]" multiple="multiple">
<option selected="selected">3</option>
<option>4</option>
</select>
<select name="data[][]" multiple="multiple">
<option selected="selected">5</option>
<option selected="selected">6</option>
</select>
</form>
Я хотел бы получить это:
$_POST['data'] = array(
0 => array(2),
1 => array(3),
2 => array(5,6)
);
Я вместо этого получаю это:
$_POST['data'] = array(
0 => array(2),
1 => array(3),
2 => array(5),
3 => array(6)
);
Решением было бы установить индекс: name="data[0][]", но я хочу, чтобы это было сделано автоматически..
Есть идеи?
2 ответа
Решение
Один из способов. Изменить на:
<select name="data[0][]" multiple="multiple">
...
<select name="data[1][]" multiple="multiple">
...
<select name="data[2][]" multiple="multiple">
Также смотрите комментарий @CBroe.
You don't need to insert the keys manually.
I tested your code and it seems to be correct for what you intend to get or you expect.
I tested it like this;
<html>
<body>
<?php
if (!isset($_GET["submit"])) {
?>
<form method="get" action="yourfilename.php">
<select name="data[][]" multiple="multiple">
<option>1</option>
<option selected="selected">2</option>
</select>
<select name="data[][]" multiple="multiple">
<option selected="selected">3</option>
<option>4</option>
</select>
<select name="data[][]" multiple="multiple">
<option selected="selected">5</option>
<option selected="selected">6</option>
</select>
<input type="submit" value="submit" name="submit"/>
</form>
<?php
}
else {
$data= $_GET["data"];
print_r($data);
echo $show;
}
\\ So to get the 5 or 6 value in the array with key "2";
\\ Output: 5
$show= $data[2][0];
\\ Or
\\ Output: 6
$show= $data[2][1];
?>
</body>
</html>