我正在用PHP创建一个库存系统
foreach ($_SESSION["cart_array"] as $each_item) {
$item_id = $each_item['item_id'];
$sql = mysqli_query($mysqli, "SELECT * FROM booklists WHERE book_id='$item_id' LIMIT 1");
while ($row = mysqli_fetch_array($sql)) {
$product_name = $row["book_name"];
当我使用此
回复我的$_SESSION
时
print_r($_SESSION["cart_array"]);
我在购物车中添加了2件物品,数量为1和55
Array (
[0] => Array ( [item_id] => 37 [quantity] => 1 )
[1] => Array ( [item_id] => 32 [quantity] => 55 )
)
我想更新会话中的所有[quantity]
值。你觉得我怎么能实现它?
答案 0 :(得分:1)
问题并不是很明确,因为我不知道需要更新的数量,但要更新每个quantity
,你可以做类似的事情。
foreach($_SESSION['cart_array'] as $index => $item){
// Add 1 to each quantity
$_SESSION['cart_array'][$index]['quantity']++;
}
// Or...
$increaseBy = 5;
foreach($_SESSION['cart_array'] as $index => $item){
// Increase by a fixed amount.
$_SESSION['cart_array'][$index]['quantity'] += $increaseBy;
}
// Or...
foreach($_SESSION['cart_array'] as $index => $item){
// Increase by a random number between 5 and 15.
$_SESSION['cart_array'][$index]['quantity'] += rand(5, 15);
}
// Or...
foreach($_SESSION['cart_array'] as $index => $item){
$increaseBy = $this->getQuantityIncrease($item['item_id']);
$_SESSION['cart_array'][$index]['quantity'] += $increaseBy;
}
// Or...
// By using references.
foreach($_SESSION['cart_array'] as $index => &$item){
$increaseBy = $this->getQuantityIncrease($item['item_id']);
$item['quantity'] += $increaseBy;
}
答案 1 :(得分:0)
你可以在循环中尝试这样的事情,
foreach ($_SESSION["cart_array"] as $key => $item) {
$_SESSION['cart_array'][$key]['quantity'] = 13; // set the qty you want
}
答案 2 :(得分:0)
您可以使用foreach循环来执行此操作。
$newQuantityValue = 10;
foreach($_SESSION['cart_array'] as $key => $value){
$_SESSION[$key]['quantity'] = $newQuantityValue;
}
我们在这里所做的就是为数量分配一个新值,然后使用foreach循环遍历$_SESSION
变量,以便我们可以使用新值更新每个数量字段(在本例中为10) )。
有关foreach循环的更多信息,请查看the PHP Docs
传递参考:
您可以通过引用传递它来同样更改值:
$newQuantityValue = 10;
foreach($_SESSION['cart_array'] as $key => &$value){
$value['quantity'] = $newQuantityValue;
}
因为我们通过引用传递它,所以不再需要引用$_SESSION
来自the docs:
为了能够直接修改循环中的数组元素,在$ value之前加上&amp ;.在这种情况下,该值将通过引用分配。
作为旁注:
您可以一起省去$newQuantityValue
变量,而只需将数字放入循环中,如下所示:
foreach($_SESSION['cart_array'] as $key => $value){
$_SESSION[$key]['quantity'] = 10;
}