数组替换最后一个值,而不是添加[PHP]

时间:2012-05-21 15:22:35

标签: php arrays array-push

我有一个PHP数组,使用

设置
$this->cart = array();

除了数组之外,所有ind和dandy都不会,无论我做什么,都会获取新值,但只会用新值替换现有值。

我已经尝试过array_merge,array_push等等,但同样的事情发生了,但这是应该工作的代码。

$this->cart[]=$input;

第一次使用时,它说数组中有一个项目“Array([0] => 1” 第二次使用它会显示这个,替换第一个值“Array([0] => 2)”

添加值由表单触发,该表单提取ID并将其作为值

放入数组中
echo '<input type="hidden" name="addeditem" value="2">';

但不管是什么代码,它都不会附加数组,只能替换它,任何想法。我已经尝试添加一个键和值,以及创建第二个数组并将其合并而无效。

添加到购物车的功能是

function addToCart($input){
$this->cart[]=$input;
$this->setCartCount();
}

解决:见评论。

2 个答案:

答案 0 :(得分:0)

你确定$ this-&gt; cart是一个全局变量,并且每次调用addToCart()时都不会创建数组吗?

试试吧。像这样:

  1. 有一个购物车对象

    public class cart{
    
       private $items;
       function __construct() {
         $items=array();
       }
       public function addToCart($item){
         $this->items[]=$item;
       }
    }
    
  2. 将代码添加到代码中其他位置的购物车中。

    $cart=$manager->getCart();
    $cart->addToCart($your_new_item);
    

答案 1 :(得分:-1)

名称应如下:addeditem[]