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

无法理解FOREACH循环PHP的某个部分中发生了什么,php,Php,所以我最近使用了一些代码,我想知道它是如何工作的,因为我不喜欢使用我不懂的东西,我从哪里得到的代码也没有显示它是如何工作的。它所做的是将所有选中的复选框附加到变量$information 下面是我使用的代码、提交的表单和php脚本 <form name="checkboxform" action="" method="post"> <input type="checkbox" name="ninjas[]" value="stuff">stuff<br>

所以我最近使用了一些代码,我想知道它是如何工作的,因为我不喜欢使用我不懂的东西,我从哪里得到的代码也没有显示它是如何工作的。它所做的是将所有选中的复选框附加到变量$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>
因此,我得到它循环遍历数组中的每个值,这就是我将它们命名为数组的原因。
但是,$keys=>$value部分是我不理解的。

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


如果有人能帮助我理解这个过程,我将不胜感激,或者给我一个链接,这样我就可以阅读了,因为到目前为止我还没有发现任何东西,请务必纠正我所说的任何错误。

提交HTML表单时,只会提交已选中复选框的值。取消选中或禁用的复选框将被忽略,因此数组只包含选中的值。

$\u POST是一个关联数组。它应该只在关键是“忍者”的地方给出值。

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

$\u POST是一个关联数组。我应该只在键为“ninjas”的地方给你值。提示:你可以使用
foreach($\u POST['ninjas']as$value){
…;你不使用$key,也不需要创建新变量$arraysweet,这是我的下一个问题。谢谢:)
如果是“ninjas”是您的复选框,它将有一个真值或假值。
-不正确:如果您选中该复选框,它将有您指定的值,或者默认为“开”,否则它将根本不存在于post arrayGood中。I prob.use empty()太多了。;)如果他在循环
$\u POST
数组,那是真的,但是由于他在循环
$\u POST['ninjas']
数组,
$key
将是数组的数字索引-在这种情况下没有太大用处
//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; 
}