저는 작은 전자 상거래 사이트 용 카트 배열을 가지고 있습니다. 저는 건물을 짓고 있으며 알아낼 수없는 루프를 실행했습니다. 내 카트 배열 (다른 ID 번호가있는)에서 3 개의 다른 제품 (2 이상의 관련 제품인지 확실하지 않음)이 있고 두 번째 항목의 수량을 업데이트하려고하면 무한 루프가 발생하고 시도가 발생합니다 기존의 indentical 제품을 업데이트하지 않고 새로운 제품으로 제품을 계속 추가하십시오.PHP 무한 루프 UGH
<?php
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Section 3 (if user chooses to adjust item quantity)
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (isset($_POST['item_to_adjust']) && $_POST['item_to_adjust'] != "") {
// execute some code
$item_to_adjust = $_POST['item_to_adjust'];
$quantity = $_POST['quantity'];
$quantity = preg_replace('#[^0-9]#i', '', $quantity); // filter everything but numbers
if ($quantity >= 100) { $quantity = 99; }
if ($quantity < 1) { $quantity = 1; }
if ($quantity == "") { $quantity = 1; }
$i = 0;
foreach ($_SESSION["cart_array"] as $each_item) {
$i++;
while (list($key, $value) = each($each_item)) {
if ($key == "item_id" && $value == $item_to_adjust) {
// 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("item_id" => $item_to_adjust, "quantity" => $quantity)));
} // close if condition
} // close while loop
} // close foreach loop
}
?>
기존 제품의 수량을 업데이트하고 다른 것으로 추가하지 않기를 바랍니다. 모든 도움을 미리 감사드립니다!
원인을 발견하기 좀 어렵습니다 ..하지만 하나의 키 노트는 foreach는 대신 사용 foreach는이 컬렉션을 통해 반복에 최적화되어 while 루프를 사용해보십시오. 또한 나는이 배열을 느끼지 않는다 (array (.. thing. – xlordt