Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不创建嵌套数组的情况下向数组中添加多个变量_Php_Arrays_Session - Fatal编程技术网

Php 如何在不创建嵌套数组的情况下向数组中添加多个变量

Php 如何在不创建嵌套数组的情况下向数组中添加多个变量,php,arrays,session,Php,Arrays,Session,我遇到了一个比我想象的更难解决的问题。还没有找到一个能让我到达我需要的地方的答案。 目标是将内容添加到会话变量的列表中,该变量的工作方式类似于购物车。基本上,有人会向列表中添加一个项目,然后添加其他项目,每个项目都会添加到一个数组中。但是在使用了各种方法之后,我仍然没有得到我所需要的 下面是用户故事 用户单击以将项目添加到列表中 已创建会话变量-项目ID已添加到会话变量 用户添加附加项 添加到会话变量会话的项现在是一个数组 步骤3和4根据用户需要重复多次 这一切都需要进入一个单一的平面阵列没有嵌

我遇到了一个比我想象的更难解决的问题。还没有找到一个能让我到达我需要的地方的答案。 目标是将内容添加到会话变量的列表中,该变量的工作方式类似于购物车。基本上,有人会向列表中添加一个项目,然后添加其他项目,每个项目都会添加到一个数组中。但是在使用了各种方法之后,我仍然没有得到我所需要的

下面是用户故事

  • 用户单击以将项目添加到列表中
  • 已创建会话变量-项目ID已添加到会话变量
  • 用户添加附加项
  • 添加到会话变量会话的项现在是一个数组
  • 步骤3和4根据用户需要重复多次
  • 这一切都需要进入一个单一的平面阵列没有嵌套
  • 下面的代码似乎是正确的解决方案。但是,它只返回最新的项ID,不创建数组。我有其他创建数组的解决方案,但它们为每个附加项创建嵌套数组,所以这不是我需要的。任何帮助都将不胜感激

    //Request Item From Post
    
    $itemsadded=$_请求['pPageItemID']; $currentItems=$\会话['ITEM\u ID']

    //如果已设置会话,则将其更改为数组以添加多个ID 如果(isset($\u会话['ITEM\u id'])){

    }

    //检查会话是否已设置(如果不是创建会话变量并添加产品ID) if(为空($\u会话['ITEM\u id'])){


    }

    我想出来了。我的问题是假设PHP将单个变量理解为带有单个变量的数组。我错了

    一个简单的修复-我只需要在合并期间将其定义为数组。将代码更新到下面,它工作得很好

    $newItems = array_merge((array)$currentItems, (array)$itemAdded);
    
    //Check to see if this is acutally a form post and then set session
    if (isset($_REQUEST['pPageItemID'])){
        $_SESSION['ITEM_IDS'] = $itemAdded;
    }
    
    $newItems = array_merge((array)$currentItems, (array)$itemAdded);