我知道这可能是PHP中的一个老问题,但很难理解问题出在哪里。
代码:
$cart = json_decode('{"ProductID":"3","Product_num":"1"} ',true);
$new_product = json_decode('{"ProductID":"1","Product_num":"1"} ',true);
$test = array_merge((array)$new_product,(array)$cart);
echo json_encode($test);
回音结果为:{“ProductID”:“3”,“Product_num”:“1”}
为什么两个php数组一起使用? 我只希望结果是:
[{"ProductID":"1","Product_num":"1"},{"ProductID":"3","Product_num":"1"}]
数组键的问题是否相同?
~~更新~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
if (isset($_SESSION['shoppingCart_list'])){
//$periodarray=$_SESSION['shoppingCart_list'];
$periodarray = array();
$periodarray = json_decode($_SESSION['shoppingCart_list'], true);
$periodarray = array_merge($periodarray,array("product_id"=>$product_id,"product_qty"=>$product_qty));
$periodjson = json_encode($periodarray);
$_SESSION['shoppingCart_list'] = $periodjson;
}else{
$periodarray=array();
$periodarray = array_merge($periodarray,array("product_id"=>$product_id,"product_qty"=>$product_qty));
$periodjson = json_encode($periodarray);
$_SESSION['shoppingCart_list'] = $periodjson;
}
在$ _SESSION ['shoppingCart_list']寄存器的第一次,它呈现一个正确的数组{"product_id":"3","product_qty":"1"}
,之后我再次调用该函数并尝试更新数组,该数组只显示最新的数组。
是否需要创建一个包含两个数组的新数组?
答案 0 :(得分:2)
你只需创建一个包含两个数组的新数组......
$test = [$new_product,$cart];
echo json_encode($test);
由于数组是关联的 - 在具有特定键的数组中只能有1个值,但您只需要一组数据而不是一个合并数组。
答案 1 :(得分:0)
购物车应该是一个数组...
$cart = []; // New Array
$cart[] = json_decode('{"ProductID":"3","Product_num":"1"} ',true); // add new Item to the cart Array
$new_product = json_decode('{"ProductID":"1","Product_num":"1"} ',true);
$cart[] = $new_product; // add new Item to the cart Array
echo json_encode($cart);
结果:
[{ “产品ID”: “3”, “Product_num”: “1”},{ “产品ID”: “1”, “Product_num”: “1”}]
答案 2 :(得分:0)
像这样使用array_push
<?php
$newArray = [];
$cart = json_decode('{"ProductID":"3","Product_num":"1"} ',true);
$new_product = json_decode('{"ProductID":"1","Product_num":"1"} ',true);
array_push($newArray,$cart);
array_push($newArray,$new_product);
echo json_encode($newArray);