如何将新数组项添加到现有数组中?

时间:2015-12-07 14:15:49

标签: php arrays

我想将新数组项添加到现有数组中。我为此目的使用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,但它也没有用。

请指导我出错的地方。

2 个答案:

答案 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;
?>
     

重复每个传递的值。