douquan3294 2017-11-17 15:44
浏览 20
已采纳

使用PHP检查两个键是否存在数组

I'd like to check if array exist by two keys: id and type

This code just check by id:

 if (isset($_POST['type'])) {
   $type = $_POST['type'];
 } 
 else {
   $type = '';
 }

 if (array_key_exists($id, $_SESSION['cart'])) {
        $_SESSION['cart'][$id]['quantity'] += $quantity;
    } else {
        $_SESSION['cart'][$id] = $line;
  }

I have tried with this code but it doesn't work:

 if (array_key_exists($id, $_SESSION['cart']) && array_key_exists($type, $_SESSION['cart'])) {
        $_SESSION['cart'][$id]['quantity'] += $quantity;
    } else {
        $_SESSION['cart'][$id] = $line;
    }

$_SESSION['cart'] is an array contains arrays of $line

 $line = array(
        'id' => $id,
        'type' => $type,
        'quantity' => $quantity,
        'price' => $price,
        'picture' => $dish->getPicture()->getWebPath(),
    );

This is the output of $_SESSION['cart']: enter image description here

As you see in th last array with id 55 and type "french bred" , what I'd like to do is to check if th user chose the same product but a with different type so insert new line else if the same product and the same type so just update quantity.

  • 写回答

2条回答 默认 最新

  • drl971115 2017-11-17 16:00
    关注

    Something like this should do, however the question is too vague and too little code is shown for me to properly understand your problem

    $lineExists = false;
        foreach($_SESSION['cart'] as $index => $line){
            if($line['id'] === $id)
            {
                $_SESSION['cart'][$index]['quantity'] += $quantity;
                $lineExists = true;
            }
        }
        if(!$lineExists)
        {
            $_SESSION['cart'][] = $newLine;
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办