Как проверить, что несколько ключей равны определенному значению

У меня есть этот код

if (isset ($_POST['id'])) {
$productid = $_POST['id'];
$size = $_POST['size'];
$wasfound = false;
$i = 0;
if (!isset ($_SESSION['cart']) || count($_SESSION['cart']) < 1) {
$_SESSION['cart'] = array (0 => array ("product_id" => $productid, "size" => $size, "quantity" => 1));
}
else {
foreach ($_SESSION['cart'] as $eachitem) {
$i++;
while (list ($key, $value) = each ($eachitem)) {
if ($key == "product_id" && $value == $productid) {
array_splice ($_SESSION['cart'], $i-1, 1, array (array ("product_id" => $productid, "quantity" => $eachitem['quantity'] + 1)));
$wasfound = true;
}
}
}
if ($wasfound == false) {
array_push ($_SESSION['cart'], array ("product_id" => $productid, "size" => $size, "quantity" => 1));
}
}
header ("location: cart.php");
exit;
}

Как добавить еще 1 условие

$ key == «size» && $ value == $ size

На этом единственном условии

if ($ key == «product_id» && $ value == $ productid) {
}

0

Решение

Как это:

if (isset ($_POST['id'])) {
$productid = $_POST['id'];
$size = $_POST['size'];
$wasfound = false;
$i = 0;
if (!isset ($_SESSION['cart']) || count($_SESSION['cart']) < 1) {
$_SESSION['cart'] = array (0 => array ("product_id" => $productid, "size" => $size, "quantity" => 1));
}
else {
foreach ($_SESSION['cart'] as $eachitem) {
$i++;
while (list ($key, $value) = each ($eachitem)) {
if ($key == "product_id" && $value == $productid) {
array_splice ($_SESSION['cart'], $i-1, 1, array (array ("product_id" => $productid, "quantity" => $eachitem['quantity'] + 1)));
$wasfound = true;
}
else if ($key == "size" && $value == $size) {
//do something
}
}
}
if ($wasfound == false) {
array_push ($_SESSION['cart'], array ("product_id" => $productid, "size" => $size, "quantity" => 1));
}
}
header ("location: cart.php");
exit;
0

Другие решения

Первый может быть использован, если вы хотите сделать две отдельные вещи, а второй может быть использован, если вы хотите, чтобы то же самое произошло, если одно из условий выполнено правильно.

while (list ($key, $value) = each ($eachitem)) {
if ($key == "product_id" && $value == $productid) {
array_splice ($_SESSION['cart'], $i-1, 1, array (array ("product_id" => $productid, "quantity" => $eachitem['quantity'] + 1)));
$wasfound = true;
} elseif ($key == "size" && $value == $size) {
// DO SOMETHING
}
}

while (list ($key, $value) = each ($eachitem)) {
if (($key == "product_id" && $value == $productid) || ($key == "size" && $value == $size)) {
array_splice ($_SESSION['cart'], $i-1, 1, array (array ("product_id" => $productid, "quantity" => $eachitem['quantity'] + 1)));
$wasfound = true;
}
}
0