PHP数组将只循环出两行,随后覆盖第二行/索引
我得到一个表单帖子,在按下(提交)的按钮上有一个数据库中项目的值(主键)($artid) 对于每一篇文章,我都会尝试将一个新的对象值添加到一个数组中,该数组映射到$artid设置的键,因此它应该是唯一的。数组被添加到$\u会话中,以便每次都获得相同的数组 第一个对象添加得很好,但其他对象只是覆盖阵列中的第二个位置。我需要它继续成长 代码:PHP数组将只循环出两行,随后覆盖第二行/索引,php,arrays,object,map,foreach,Php,Arrays,Object,Map,Foreach,我得到一个表单帖子,在按下(提交)的按钮上有一个数据库中项目的值(主键)($artid) 对于每一篇文章,我都会尝试将一个新的对象值添加到一个数组中,该数组映射到$artid设置的键,因此它应该是唯一的。数组被添加到$\u会话中,以便每次都获得相同的数组 第一个对象添加得很好,但其他对象只是覆盖阵列中的第二个位置。我需要它继续成长 代码: 提前感谢您的帮助 您能更详细地介绍一下您的foreach中发生了什么吗?是否将类属性指定给数组 此外,在将数组分配给会话值之前,可以尝试序列化数组 如果其他方
提前感谢您的帮助 您能更详细地介绍一下您的foreach中发生了什么吗?是否将类属性指定给数组 此外,在将数组分配给会话值之前,可以尝试序列化数组 如果其他方法都失败了,这通常会帮助我认识到我的错误所在:
print_r($cartArr);
祝你好运
编辑:
在看了另一个答案后,我意识到我也忽略了会话变量的早期赋值。您需要在您的foreach之后分配,或者像Ben所说的,您的foreach所做的工作不会继续下去。(尽管如此,我仍然会序列化数组)添加新元素后,看起来不像您将会话数组设置回原来的状态。因此,下次页面加载时,新值未保存 您有两种选择: 1) 在您的foreach集合
$\u会话['itemArray']=$cartArr代码>这将在会话中保存任何更改(例如添加新元素)
2) 将$cartArr
指定为对$\u会话['itemArray']
的引用,以便对$cartArr
所做的任何更改实际上都是对$\u会话['itemArray']
进行的,您可以通过$cartArr=&$\u会话['itemArray']执行此操作代码>就在您的else
之后,我改为使用var\u dump()
并且没有回头看。
print_r($cartArr);