【问题标题】:How to add new array item into existing array?如何将新数组项添加到现有数组中?
【发布时间】:2015-12-07 14:15:48
【问题描述】:

我想将新数组项添加到现有数组中。我为此目的使用array_push,但它不起作用。

数组

Array ( [productID] => 51  )

PHP 代码

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,但它也不起作用。

请指导我哪里出错了。

【问题讨论】:

  • @Semmix 我认为它不是重复的,因为我的问题与上面提到的链接完全不同
  • var_dump( $inserted); ,var_dump( $original); 中有什么内容?
  • @ashkufaraz string '51' (length=2) 是这个var_dump( $inserted);的结果
  • var_dump( $original);?

标签: php arrays


【解决方案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)
}

【讨论】:

    【解决方案2】:

    来自documentation for array_push()

    array_push — 将一个或多个元素压入数组末尾

    int array_push ( array &$array , mixed $value1 [, mixed $... ] )
    

    array_push() 将数组视为堆栈,并将传递的 变量到数组的末尾。数组的长度增加 推送的变量数。与以下效果相同:

    <?php
    $array[] = $var;
    ?>
    

    对每个传递的值重复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2017-12-21
      • 2014-10-17
      • 1970-01-01
      • 2017-06-13
      • 2016-05-03
      • 1970-01-01
      相关资源
      最近更新 更多