PHP:form带有多个具有相同变量名的复选框:在结果数组中设置了哪些键?

PHP:form带有多个具有相同变量名的复选框:在结果数组中设置了哪些键?,php,Php,假设我们有一个典型的HTML表单,其中包含多个具有相同变量名的复选框,将发送到PHP脚本: <INPUT TYPE=CHECKBOX NAME=camino[0] VALUE=1> <INPUT TYPE=CHECKBOX NAME=camino[1] VALUE=66> <INPUT TYPE=CHECKBOX NAME=camino[2] VALUE=77> <INPUT TYPE=CHECKBOX NAME=camino[3] VALUE=67&g

假设我们有一个典型的HTML表单,其中包含多个具有相同变量名的复选框,将发送到PHP脚本:

<INPUT TYPE=CHECKBOX NAME=camino[0] VALUE=1>
<INPUT TYPE=CHECKBOX NAME=camino[1] VALUE=66>
<INPUT TYPE=CHECKBOX NAME=camino[2] VALUE=77>
<INPUT TYPE=CHECKBOX NAME=camino[3] VALUE=67>
但有时我得到的数组确实设置了所有键,只有未标记的值设置为null:

Array (
 [0] =>
 [1] =>
 [2] => 77
 [3] => 
 )

我有一个本地PHP5.4.45安装,第一件事发生在这里,第二件事发生在另一个带有5.4.16的测试服务器上。哪种行为是“正确的”?它是否依赖于某个INI设置?

您可以使用数组过滤器

$array = array(
                            0 => 1,
                            1 => 0,
                            2 => 1,
                            3 => 0);
var_dump($array);
echo "<br>";

// Filtering the array
$result = array_filter($array);
var_dump($result);
$array=array(
0 => 1,
1 => 0,
2 => 1,
3 => 0);
变量转储($数组);
回声“
”; //过滤阵列 $result=array\u filter($array); var_dump($结果);
输出:

数组(2){[0]=>int(1)[2]=>int(1)}


我不能复制。你能给我们看一下你在PHP中使用的代码吗?对不起,代码真的很复杂,一堆堆的库堆在一起,写得不是很好。不管怎样,我终于设法用另一种方式调试了它。也许我应该结束这个问题?如果您仍然使用PHP5,我强烈建议您尽快升级。不再支持此版本。是的,如果问题不再可再现,您可以删除该问题。
$array = array(
                            0 => 1,
                            1 => 0,
                            2 => 1,
                            3 => 0);
var_dump($array);
echo "<br>";

// Filtering the array
$result = array_filter($array);
var_dump($result);