有沒有辦法從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