我使用cookie来保存PHP数组(0 => 0,1=>0,......,99=>0),并且我将数组编码成JSON以便能够将其保存在cookie中,问题是当我解码JSON以检索数组并更改字段的值时,我无法更新cookie,我也不知道为什么。
这是我用来创建cookie的代码:
$carrito=array(0=>0);
$sql = "SELECT ID FROM productos";
$ids = $conn->query($sql);
if ($ids->num_rows > 0){
while($row = $ids->fetch_assoc()) {
array_push($carrito, 0);
}
} else {
echo "0 results";
}
$conn->close();//cerramos la conexión
setcookie("carrito", json_encode($carrito), time()+(86400),"/");
这是我用来解码JSON并通过arrat修改它的代码:
if(isset($_POST["id"])){
$idProducto=$_POST["id"];
$data = json_decode(stripslashes($_COOKIE["carrito"]),true);
print_r($data);
echo "</br>".$idProducto."</br>";
foreach($data as $id => $cantidad){
if($id == $idProducto){
$cantidad++;
}
}
print_r($data);
setcookie("carrito", json_encode($data), time()+(86400),"/");
}
问题是,在解码json之后,当我尝试遍历数组时,它不会将行$data识别为$id => $cantidad。
这是我在print_r($data)时得到的结果:
Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 0 [15] => 0 )
发布于 2018-06-24 08:48:29
已经通过使用以下命令解决了这个问题:
$data[$idProducto]++;
代替foreach循环
https://stackoverflow.com/questions/51006104
复制相似问题