数组索引自动从 1 开始
Array index automatically starts at 1
我有两种输入类型。我有 4 个 select 框和 4 个带有隐藏字段的复选框。复选框与 select 框具有相同的名称。提交后,我这样做:
var_dump(Input::get(checkboxname));
var_dump(Input::get(selectboxname));
输出:
array(4) {
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
[4]=> string(5) "value"
}
array(4) {
[0]=> string(5) "value"
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
}
这是我的 select 盒子:
<select name="selectboxname[]" >
//values in a complicated for loop that's not important but it works
</select>
这是我的复选框:
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
在数组中,复选框的索引如下:1,2,3,4,select框的索引为 0,1,2,3。我必须让索引彼此匹配。我知道通常索引从 0 开始,所以 select 框是正确的。这里出了什么问题?
如果您想从零开始重新索引您的数组,只需执行以下操作:
array_values(Input::get('checkboxname'));
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
似乎 type='hidden' 变成了复选框名称[0]。
如果您想要未经检查的值,也许您应该在名称中使用数字:
<input type='hidden' value='othervalue' name='checkboxname[0]'>
<input type="checkbox" name="checkboxname[0]" value="value">
<input type='hidden' value='othervalue' name='checkboxname[1]'>
<input type="checkbox" name="checkboxname[1]" value="value">
我的猜测是它与 laravel 处理输入($_POST 或 $_GET)
的方式有关
为您正在使用的那个(POST 或 GET)做一个 var_dump 并查看。直接从 $_ 数组访问值可能更好。
尝试array_values重新索引您的数组
<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>
输出:
Array
(
[0] => XL
[1] => gold
)
我有两种输入类型。我有 4 个 select 框和 4 个带有隐藏字段的复选框。复选框与 select 框具有相同的名称。提交后,我这样做:
var_dump(Input::get(checkboxname));
var_dump(Input::get(selectboxname));
输出:
array(4) {
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
[4]=> string(5) "value"
}
array(4) {
[0]=> string(5) "value"
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
}
这是我的 select 盒子:
<select name="selectboxname[]" >
//values in a complicated for loop that's not important but it works
</select>
这是我的复选框:
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
在数组中,复选框的索引如下:1,2,3,4,select框的索引为 0,1,2,3。我必须让索引彼此匹配。我知道通常索引从 0 开始,所以 select 框是正确的。这里出了什么问题?
如果您想从零开始重新索引您的数组,只需执行以下操作:
array_values(Input::get('checkboxname'));
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
似乎 type='hidden' 变成了复选框名称[0]。
如果您想要未经检查的值,也许您应该在名称中使用数字:
<input type='hidden' value='othervalue' name='checkboxname[0]'>
<input type="checkbox" name="checkboxname[0]" value="value">
<input type='hidden' value='othervalue' name='checkboxname[1]'>
<input type="checkbox" name="checkboxname[1]" value="value">
我的猜测是它与 laravel 处理输入($_POST 或 $_GET)
的方式有关为您正在使用的那个(POST 或 GET)做一个 var_dump 并查看。直接从 $_ 数组访问值可能更好。
尝试array_values重新索引您的数组
<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>
输出:
Array
(
[0] => XL
[1] => gold
)