현재 PHP로 사용자 정의 장바구니를 작성 중입니다.다차원 배열에서 다중 물음표 키 값 쌍을 검색하는 방법
카트에 추가 할 수있는 각 제품에는 데이터베이스의 제품 ID에 대해 PID와 고유 디자인 ID에 대해 2 개의 변수가 있습니다. 모든 제 제품은 맞춤형 제품이므로 필요한 2 가지 주요 변수입니다.
사용자가 빈 장바구니에 항목을 추가하면 $ _SESSION이 cart_array라는 다차원 배열로 만들어집니다. 동일한 항목이 추가되면 cart_array에서 일치하는 키 값 쌍을 검색하고 새 배열을 추가하는 대신 수량을 늘릴 수 있습니다. 그러나 한 쌍의 값만 일치시킬 수 있습니다. 하나의 키 값 쌍 (pid = 게시 된 pid)을 가진 배열을 찾아서 동일한 배열에 다른 일치하는 키 값 쌍이 있는지 (즉, 게시 된 것이 있는지) 확인해야합니다.
<?php
if (isset($_POST['pid'])) {
$pid = $_POST['pid'];
$did = $_POST['did'];
$wasFound = false;
$i = 0;
// If the cart session variable is not set or cart array is empty
if (!isset($_SESSION["cart_array"]) || count($_SESSION["cart_array"]) < 1) {
// RUN IF THE CART IS EMPTY OR NOT SET
$_SESSION["cart_array"] = array(1 => array("item_id" => $pid, "did" => $did, "quantity" => 1));
} else {
// RUN IF THE CART HAS AT LEAST ONE ITEM IN IT
foreach ($_SESSION["cart_array"] as $each_item) {
$i++;
if (array_key_exists("pid", $each_item) && $pid == $each_item["pid"]) {
// That item is in cart already so let's adjust its quantity using array_splice()
array_splice($_SESSION["cart_array"], $i-1, 1, array(array("did" => $did, "item_id" => $pid, "quantity" => $each_item['quantity'] + 1)));
$wasFound = true;
} // close if condition
} // close foreach loop
if ($wasFound == false) {
array_push($_SESSION["cart_array"], array("item_id" => $pid, "did" => $did, "quantity" => 1));
}
}
header("location: cart.php");
exit();
}
?>
나는 분명히했으면한다. 조정할 코드는 아마도 알고 있습니다. 일치 $의 PID를 발견 배열도 일치하는 $가 Quadtree 사용
연구에 새로운 뭔가를 제공해 주셔서 감사합니다. 이것은 가능성 일지 모르지만 나는 스스로 가르친 개발자이고 이것을 조사해야 할 것입니다. 감사합니다 –