我知道这可能是PHP中的一个老问题,但真的很难理解问题出在哪里。php array_merge不能工作替换现有的
代码:
$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);
回波结果为:{ “产品ID”: “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
根据['array_merge'文档](http://php.net/manual/en/function.array-merge.php):*如果输入数组具有相同的字符串键,那么后者的值键将覆盖前一个。* –
+0
是的,那很可能是问题所在 –