(PHP)在for循环中挣扎变量

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (264)

为了给出一些上下文,这是for循环引用的代码:将表单数据放入数组中。

         $_SESSION['shoppingcart'][$count] = array (

        'id' => filter_input(INPUT_GET, 'ID'),
        'name' => filter_input(INPUT_POST, 'hidden_name'),
        'price' => filter_input(INPUT_POST, 'hidden_price'),
        'list_price' => filter_input(INPUT_POST, 'hidden_list_price'),
        'quantity' => filter_input(INPUT_POST, 'quantity')

       );

    $count = count($_SESSION['shoppingcart']);

    $product_ids = array_column($_SESSION['shoppingcart'], 'id');

这一切都很好:我理解这段代码的作用。它只是'for'循环以及涉及for循环之外的变量'$ i'的所有内容。

for ($i=0; $i < count($product_ids); $i++) { 

if ($product_ids[$i] == filter_input(INPUT_GET, 'ID')) {

$_SESSION['shoppingcart'][$i]['quantity'] += 
filter_input(INPUT_POST,'quantity');

            }
        }

所以,$i变量。它在for循环中表示什么,为什么它/它在'if'语句的方括号中代表什么。

我应该说这段代码完成了它的预期目的(将表单数据放入数组中,quantity如果数组中的项已经存在则递增。)我从YouTube教程中获得了代码,只是他没有解释这$i部分内容。

提问于
用户回答回答于

每次完成循环的迭代时,$i变量将增加$i++(因此在这种情况下为1),直到$i < count($product_ids)满足此条件:这对于按顺序访问数组中的元素特别有用,即if ($product_ids[$i] == filter_input(INPUT_GET, 'ID'))用于访问每个元素$product_ids并检查该值是否相等filter_input(INPUT_GET, 'ID')

它还值得注意的$i = 0是$ i的初始化。这只在您第一次进入for循环时发生一次。

扫码关注云+社区

领取腾讯云代金券