PHP의 많은 함수에서 얻은 결과가 배열로 제공되는 것을 확인했습니다. 가장 일반적으로 사용되는 것은 mysql_fetch_array()입니다.
얻은 문자열 정보를 포함하여 배열을 생성한 다음 배열을 문자열로 분해합니다. implode() 함수 사용하기;
저는 장바구니 같은 구현을 한번도 작성해 본 적이 없습니다. 일주일 동안 간헐적으로 작성하고 생각했습니다. (초심자로서 거만한 것은 허용됩니다) 자동차 핸들러.
그리고 저는 수업에 들어간 적이 없기 때문에 여전히 과정에 집중하고 있습니다.
내가 사용하는 방법의 핵심은 배열에 쿠키를 저장하고 배열을 추가, 삭제, 수정하는 것입니다. 배열의 각 레코드 집합은 제품에 대한 정보(번호, 가격 등)입니다. )
장바구니를 해결하는 아이디어는 쿠키를 이용해 2차원 배열을 기록하는 것입니다. 하나의 차원은 각 제품을 나타내고 두 개의 차원에는 제품 ID, 제품 수량 등이 포함됩니다. 어쨌든 2차원적으로 원하는 만큼 추가할 수 있습니다.
장바구니에 있는 항목에 대한 작업에는 일반적으로 항목 추가, 항목 수량 수정, 항목 삭제, 장바구니 지우기가 포함됩니다.
이 작업은 모두 쿠키를 위한 것입니다. 매번 쿠키의 배열을 꺼내고, 추가하고, 수정하고, 삭제한 후 쿠키에 기록합니다. 장바구니를 비우는 방법은 더 간단합니다. 동일한 이름의 쿠키를 비워두시면 됩니다.
다음은 제가 작성한 구체적인 동작 함수입니다
//장바구니에 추가
function addcart($goods_id,$goods_num){
$cur_cart_array = unserialize(stripslashes($_COOKIE['shop_cart_info']))
if($ cur_cart_array==""){
$cart_info[0][] = $goods_id;
$cart_info[0][] = $goods_num;
setcookie("shop_cart_info", serialize($cart_info));
}elseif($cur_cart_array<>""){
//배열 키 이름을 역순으로 반환하고 가장 큰 이름을 가져옵니다.
$ ar_keys = array_keys($cur_cart_array );
rsort($ar_keys);
$max_array_keyid = $ar_keys[0]+1
//현재 장바구니 배열 순회
// 각 제품 정보 배열 0 값을 순회하고, 키 값이 0이고 품목 번호가 동일하면 장바구니에 동일한 품목이 존재하는 것입니다.
foreach($cur_cart_array as $goods_current_cart){
foreach($goods_current_cart as $key=>$goods_current_id){
if($key == 0 and $goods_current_id == $goods_id){
echo ""
}
}
}
$cur_cart_array [$max_array_keyid][] = $goods_id;
$cur_cart_array[$max_array_keyid][] = $goods_num
setcookie("shop_cart_info; ",serialize($cur_cart_array));
}
}
//장바구니에서 삭제
함수 delcart($goods_array_id){
$cur_goods_array = unserialize(stripslashes($_COOKIE['shop_cart_info'] ));
//배열에서 제품 위치 삭제
unset($cur_goods_array[$goods_array_id])
setcookie("shop_cart_info",serialize($cur_goods_array));
}
//장바구니에 담긴 상품 수량 수정
function update_cart($up_id,$up_num, $goods_ids){
//재설정할 수 있도록 먼저 쿠키를 지웁니다. 세 가지 배열 매개변수가 전달됩니다. 1. 배열 식별 2. 제품 수량 배열 3. 제품 번호 배열
//If 쿠키가 삭제되지 않아 수량이 0인 제품은 처리할 수 없습니다.
setcookie("shop_cart_info","")
foreach($up_id as $song){
//첫 번째 반품 배열의 현재 단위, 포인터를 한 위치 아래로 이동합니다.
$goods_id = current($goods_ids); next($goods_ids);
//상품 개수가 비어 있으면 여기서 배열 값을 취소하고 continue 2 문을 사용합니다. 다음 연산을 피하고 foreach 루프를 계속 수행합니다.
while($ goods_nums == 0){
unset($song);
계속 2; $song][1] = $goods_nums;
}
setcookie("shop_cart_info",serialize($cur_goods_array) ;
위 내용은 장바구니 내용을 구현하기 위한 쿠키와 배열의 조합입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!