PHP 填充多维关联数组 - 最简单的方法

标签 php arrays

我想使用 $_SESSION 将商品存储在购物车中。这些项目由 id 定义,每个项目有 3 个尺寸,每个尺寸都会存储项目的数量。我想像那样使用多维关联数组

$_SESSION['cart']['id'.$_GET['id']]['size'.$_POST['size']]['quantity'] += $_POST['quantity'];

但我想我遇到的问题(注意: undefined index )是因为数组没有首先定义。

我想保持简单,那么最简单的方法是什么?

最佳答案

您的问题是您只是假设这些项目是在 $_SESSION 中设置的。您需要假设它们不是,然后从添加它们开始。

你会利用 isset() .

if(!isset($_SESSION['cart']['id'.$_GET['id']])) {
    $_SESSION['cart']['id'.$_GET['id']] = array(
        'sizeONE' => array(
            'quantity' => 0
        ),
        'sizeTWO' => array(
            'quantity' => 0
        ),
        'sizeTHREE' => array(
            'quantity' => 0
        ),
    );
}

您显然需要修改以上内容,以便可能仅根据需要设置产品 ID,然后运行相同类型的 isset() 以添加所选尺寸。我只是向您展示如何创建初始结构数组。

关于PHP 填充多维关联数组 - 最简单的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30250678/

相关文章:

javascript - 无法访问 symfony Controller 内的 javascript 变量

javascript - 在javascript中传递两个不同的变量?

php - 尽管有 $isset,但 PHP 表单中的 MySQL 条目为空?

c - 使用指向 int 的指针作为数组索引

python - 所选值的总最大值

php - 将查询字符串附加到 URL

php - 无法使用 Codeigniter URL 删除 WAMP 中的 index.php

arrays - 当字典的值是字符串数组时使用 decodable 进行解析

arrays - 所有对之间的位差之和

arrays - 在 C 中实现 memset 以设置整个字而不是逐字节设置