数组索引自动从 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
)