我想将新数组项添加到现有数组中。我为此目的使用array_push
但它无效。
阵列
Array ( [productID] => 51 )
Php Code
if(isset($_REQUEST['sendProductId'])){
$inserted = $_COOKIE['productID'];
$original = $_REQUEST['sendProductId'];
if($inserted){
$cookie_value = array_push( $inserted, $original );
}else{
$cookie_value = $_REQUEST['sendProductId'];
}
$cookie_name = 'productID';
setcookie($cookie_name, $cookie_value, time() + (86400 * 30));
}
print_r($_COOKIE);
实际上我想将产品ID添加到cookie中。我也使用了array_splice
,但它也没有用。
请指导我出错的地方。
答案 0 :(得分:-1)
将serialize(array())
数组设置为Cookie,读取数据使用$data = unserialize($_COOKIE[$cookie_name]);
所以试试这个
if(isset($_REQUEST['sendProductId'])){
$inserted = 51;//$_COOKIE['productID'];
$original = 52;//$_REQUEST['sendProductId'];
$cookie_name = 'productID';
$cookie_value[0] = $original;
if($inserted)
$cookie_value[1] = $inserted;
setcookie($cookie_name, serialize($cookie_value), time() + (86400 * 30));
}
$data = unserialize($_COOKIE[$cookie_name]);
array(2) {
[0]=>
int(52)
[1]=>
int(51)
}
答案 1 :(得分:-3)
来自documentation for array_push():
array_push
- 将一个或多个元素推送到数组的末尾int array_push ( array &$array , mixed $value1 [, mixed $... ] )
array_push()
将数组视为堆栈,并推送传递 变量到数组的末尾。数组的长度增加了 推送的变量数量。具有与以下相同的效果:<?php $array[] = $var; ?>
重复每个传递的值。