无法理解FOREACH循环PHP的一部分中发生了什么


cant understand what is happening in a section of FOREACH loop PHP

所以我最近使用了一些代码,我想知道它是如何完全工作的,因为我不喜欢使用我不懂的东西,而且我从哪里得到的代码并没有显示它是如何工作的。它所做的是将所有选中的复选框附加到变量$information中。

这是我使用的代码、提交的表单和php脚本

<form name="checkboxform" action="" method="post">
 <input type="checkbox" name="ninjas[]" value="stuff">stuff<br>
 <input type="checkbox" name="ninjas[]" value="more stuff">more stuff<br>
<input type="submit" value="submit" name="submit">
</form>

所以当我点击提交时,这个功能会运行

//excuse the ninja naming part, needed to have a laugh cause this was so frustrating :)
function sneakyNinjas() {
$array = $_POST['ninjas'];
$information = "";
foreach ($array as $key => $value) {
    $information .= $value; 
}

因此,我得到它在数组中的每个值中循环,这就是为什么我这样命名它们的原因
但是$keys=>$value部分是我不理解的

如何确定何时单击了复选框
它是否使用与数组一起发送的布尔值

如果能为我理解这个过程提供任何帮助,我们将不胜感激,或者提供一个链接,让我可以阅读它,因为到目前为止我什么都没有发现,并尽一切努力纠正我所说的任何错误。

提交HTML表单时,只提交已选中的复选框的值。省略了未选中或禁用的复选框,因此数组只包含选中的值。

我认为提交表单时只传递选中的复选框。在循环中,$key是传递的字段名,$value是它的值(与HTML中的属性匹配)。未选中的字段根本不应该存在(如果我没记错的话)。

$_POST是一个关联数组。它应该只在关键是"忍者"的地方给你值。