Я использую cookie для сохранения массива PHP (0 => 0, 1 => 0, ......, 99 => 0) и кодирую массив в JSON, чтобы иметь возможность сохранятьпроблема заключается в том, что когда я декодирую JSON, чтобы извлечь массив и изменить значение поля, я не могу обновить 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.
Это то, что я получаю, когда печатаю_д ($ 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 )