有没有办法从1开始,直到数组结束(在下面的例子中为10)数组的键的总和。 因此,如果所有复选框都被选中,结果应该是55(1 + 2 + 3 ... + 10)。我从1开始分配密钥,但它不起作用。 这就是我到目前为止。 这里是阵列(值不事现在,他们将在以后处理):获得从1开始的数组的键和计数
<?php
$rank1_1[1] = '<input type = "checkbox" name = "v_1[]" value="1" />h';
$rank1_1[2] = '<input type = "checkbox" name = "v_1[]" value="7" />w';
$rank1_1[3] = '<input type = "checkbox" name = "v_1[]" value="20" />n';
$rank1_1[4] = '<input type = "checkbox" name = "v_1[]" value="44" />m';
$rank1_1[5] = '<input type = "checkbox" name = "v_1[]" value="81" />l';
$rank1_1[6] = '<input type = "checkbox" name = "v_1[]" value="133" />k';
$rank1_1[7] = '<input type = "checkbox" name = "v_1[]" value="203" />p';
$rank1_1[8] = '<input type = "checkbox" name = "v_1[]" value="292" />b';
$rank1_1[9] = '<input type = "checkbox" name = "v_1[]" value="403" />s';
$rank1_1[10] = '<input type = "checkbox" name = "v_1[]" value="537" />b';
?>
的过程:
<?php
for ($i = 1; $i <= count($rank1_1); $i++)
echo $rank1_1[$i], '<br />';
$keys = array_keys($checked_1);
foreach($keys as $keys_s) {
$keys_sum += $keys_s;
}
?>
而结果:
<?php
echo '<br />$keys_sum = '. $keys_sum; // $keys_sum = 45
print_r ($keys_sum); // Array ([0] => 0 [1] => 1 [2] => 2 [3] => 3
[4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9)
?>
而且如果我检查第8,第9和第10个框,结果是:
Array ([0] => 0 [1] => 1 [2] => 2 [3]
如何使其按预期工作?请帮忙。
有没有在你的代码中有一吨重的。为什么不以编程方式生成这些? – tadman
如果有10个复选框,为什么不计算呢? – AbraCadaver
如果你的数组有10个元素(count($ arr)= 10),从$ arr [0]开始,那么最后一个元素是$ arr [9]。您的代码正在访问超出数组末尾的$ rank1_1 [count($ rank_1_1))]。你在变量名中使用数字会让我觉得你还没有真正理解如何使用数组。使用一个数组中的索引来解析保存在另一个数组中的数据是一种反模式。 – symcbean