Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向已经在PHP中定义的多维数组添加元素?_Php_Arrays_Multidimensional Array - Fatal编程技术网

向已经在PHP中定义的多维数组添加元素?

向已经在PHP中定义的多维数组添加元素?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我正在构建一个没有数据库的简单购物车,只是使用一个数组 我可以将商品添加到购物车中,它有名称和价格。我希望能够在更新购物车时添加更多元素,例如数量 这是我的工作代码,显示名称和价格 $_SESSION['cart'] = array($products[$itemid]); $itemid将是包含名称和价格的数组的索引 $_SESSION['cart'] = array($products[$itemid]); 我尝试了几种添加元素的方法,但都失败了。此时如何添加元素 $_SESSION[

我正在构建一个没有数据库的简单购物车,只是使用一个数组

我可以将商品添加到购物车中,它有名称和价格。我希望能够在更新购物车时添加更多元素,例如数量

这是我的工作代码,显示名称和价格

$_SESSION['cart'] = array($products[$itemid]);
$itemid将是包含名称和价格的数组的索引

$_SESSION['cart'] = array($products[$itemid]);
我尝试了几种添加元素的方法,但都失败了。此时如何添加元素

 $_SESSION['cart'] = array($products[$itemid ,'qty' => 1]);
 $_SESSION['cart'] = array($products[$itemid] ,'qty' => 1);
 array_push($_SESSION['cart'], $products[[$itemid, 'qty' => 1]]);

如果
$products[$itemid]
是一个以名称和价格为键的数组,请尝试将数量添加到其中:

$_SESSION['cart'] = array(array_merge($products[$itemid], ['qty' => 1]);

如果您已经阅读了我的回答,我写道,只有当$products[$itemid]是一个数组,并且我确信$itemid是要添加到购物车的项目的id,并且$products是一个由项目id索引的项目数组时,它才会起作用。@Memor-X我理解您的观点,但我认为@Jeremy不需要更改
$products
变量,产品与数量无关,但
$会话['cart']
需要更改,他需要将数量添加到
$会话['cart']
array,这就是我使用array\u merge的原因,如果他需要向购物车添加更多产品,他只需将行更改为类似于
$\u SESSION['cart'][]=array(array\u merge($products[$itemid],'qty'=>1]);
并且不会丢失任何东西!@Memor-X
['qty'=>1]
使用自PHP5.4以来就可用的数组语法。TechPlayGrand使用古老的PHP5.3。请改用。我认为你们两人相互混淆了。认为
$itemid
是一个项目id(字符串或数字)并且
$products[$itemid]
返回一个项目信息数组似乎是最合理的(使用
name
price
)。可能是
$itemid='123abc'
$product=['123abc'=>['name'=>'foo',price=>10]