내 문제. 나는 연관 배열을 가지며 키가 함수에 전달 된 항목 객체의 항목 ID와 일치하기를 원합니다. 항목 ID 키가 배열에 아직없는 경우 키 값으로 ["Item"=>$item,"Quantity=>1]
이라는 새 배열과 함께 항목 ID를 키로 배열 카트에 추가하고 싶습니다.Php 연관 배열 값 삽입, 잘못된 키 표시
키가 이미 존재하는 경우 카트 어레이에 항목 ID를 인덱싱하여 검색 할 배열에 저장된 수량을 업데이트하고 싶습니다. 다음
는내가 (Cart.class.php에 위치) 그 결과를 것이라고 생각하는 것이이 코드입니다 : 다음 var_dump($this->cart_items)
를 사용하는 경우,
private $cart_items = array();
public function add_to_cart($item, $quantity = 1){
if(!isset($item) || !isset($item->ItemID)){
throw new Exception("Error adding item to cart");
}
if(!array_key_exists($item->ItemID,$this->cart_items)){
$this->cart_items[$item->ItemID] = array("Item"=>$item,"Quantity"=>$quantity);
}else{
$this->cart_items[$item->ItemID]["Quantity"] += $quantity;
}
$this->number_of_cart_items+=$quantity;
}
그러나되어 출력 :
array(2){
[
0
] => NULL [
1
] => array(2) {
[
"Item"
] => object(stdClass)#2 (8) {
[
"ItemID"
] => int(11) [
"ItemName"
] => string(18) "Kids check T-Shirt" [
"ShortDescription"
] => string(20) "A kids check T-Shirt" [
"LongDescription"
] => string(51) " A kids check T-shirt perfect for formal occasions!" [
"ItemPrice"
] => float(33.59) [
"ImagePath"
] => string(51) "kozzi-26129586-1591x2387.jpg" [
"QuantityAvailable"
] => int(100) [
"ItemSupplier_SupplierID"
] => int(1)
} [
"Quantity"
] => int(1)
}
}
내 문제는 $item->ItemID
이 연관 배열의 키로 사용되지 않는다는 것입니다. 키가 [0] [1]이고, 첫 번째 키가 null 인 것을 볼 수 있습니다. $this->cart_items[$item->ItemID] = array()
을 사용하고 있는데 제 질문은 : 나는 어떡하지? 잘못하고 배열의 키로 ID가 사용되지 않는 이유는 무엇입니까?
감사합니다.
가 add_to_cart 기능 – Terminus
예 내부로부터 위해서 var_dump ($ 항목) 수행을 참조하십시오,하지만 난 항목 ID는 또한 cart_items 연관 배열에 대한 인덱스가 될 것을 싶습니다. – Eladian
$ item에 var_dump를 입력하고 결과를 여기에 게시하십시오. – Terminus