【问题标题】:The purpose of second square brackets in this PHP code此 PHP 代码中第二个方括号的用途
【发布时间】:2020-10-10 05:16:24
【问题描述】:

是否有关于第二个方括号 - [$i] - 在第三行的 if 语句中的作用的基本解释或资源?

当我在这里时.. 数组函数中的大于或等于是什么意思?它的目的是在选择四个复选框中的任何一个时创建一个数组。

$passtime = array("beachwalks"=>0,"gardening"=>0,"playingsports" =>0,"other"=>0);
for($i=0; $i < count($pastime); $i++) {
    if(isset($_POST["pastime"][$i])) {
        $pastime[$_POST["pastime"][$i]] = 1;

【问题讨论】:

  • 这是一个数组索引。 $_POST['pastime'] 是一个数组。
  • 不是大于或等于,而是&gt;==&gt; 用于在关联数组中定义关联。
  • 多维数组

标签: php


【解决方案1】:

如 cmets 中所述,$_POST['pastime'] 是一个类似这样的数组:

Array ( 
  [0] => beachwalks 
  [1] => gardeningArray
  ...
) 

所以,使用$pastime[$_POST["pastime"][$i]],您将获得指定索引的值01 等等.. 使用[$i]

=&gt; 用于定义数组中的键值对。因此,在您的情况下,[beachwalks] 是一个键,而 [0] 是一个值

有关Arrays的更多信息,请参阅文档

【讨论】:

  • 感谢您的帮助。但它提出了另一个问题。它如何使用 $i 循环遍历数组 - 这是一个 INT - 在这种情况下,当它是一个关联数组并且键实际上是一个字符串 - 例如beachwalks(值为 0)?
  • @Louiee 那是因为 PHP 本质上是松散类型的语言。 PHP 不需要在变量声明中显式定义类型。因此,保存 INT 值的变量可以更改为保存字符串或布尔值。例如:- 如果您有一个字符串 1 和一个 INT 1 并且您将两者相加,那么您将得到2 的输出。更多信息:Type JugglingStrict vs. Loose Comparisons in PHP
【解决方案2】:

[$i] 是一个数组索引。表格大概是这样的:

What activities do you enjoy?<br>
<input type="checkbox" name="pastime[0]" value="beachwalks"> Beachwalks<br>
<input type="checkbox" name="pastime[1]" value="gardening"> Gardening<br>
<input type="checkbox" name="pastime[2]" value="playingsports"> Playing Sports<br>
<input type="checkbox" name="pastime[3]" value="other"> Other

这将使$_POST["pastime"] 成为一个数组,其中包含所有选定复选框的元素,并且每个元素的值都是 HTML 中的 value 属性。然后循环将$pastime 数组的对应元素设置为1

=&gt; 用于分配关联数组的元素。您应该能够在 PHP 教程中关于数组的部分中找到完整的解释。

【讨论】:

  • 感谢您的帮助。但它提出了另一个问题。它如何使用 $i 循环遍历数组 - 这是一个 INT - 在这种情况下,当它是一个关联数组并且键实际上是一个字符串 - 例如beachwalks(值为 0)?
  • 这种情况下PHP会自动将整数转换为字符串。
  • 试试看:$array = ["0" =&gt; "abc"]; echo $array[0];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-27
相关资源
最近更新 更多