首页 > 解决方案 > 保持数组引用并在其中添加一些东西

问题描述

在我非常简单Laravel livewire的组件中,我有一个数组,当我尝试通过单击一个简单的示例将另一个数据添加到该数组中时div,我得到了带有最后插入数据的新数组,并且我无法保留此数组引用以将某些数据附加到该数组中

<div wire:click="addNewSize"></div>
class SellerStoreNewProductComponent extends Component
{
    public array $productSizes=[];
    
    //...

    public function addNewSize()
    {
        /* SOLUTION ONE */
        //$this->productSizes[] = $this->productSizes + [str::random(10) => str::random(10)];

        /* SOLUTION TWO */
        //$this->productSizes[][]=array_push($this->productSizes, [str::random(10) => str::random(10)]);

        /* SOLUTION THREE */
        //array_push($this->productSizes, [str::random(10) => str::random(10)]);

        dd($this->productSizes);
    }
}

提前致谢

标签: phplaravellaravel-livewire

解决方案


如果您希望将一key value对添加到现有数组中,您很可能希望使用array_merge而不是array_push.

array_merge将两个组合arrays成一个array,同时array_push将元素添加到现有的array.

public function addNewSize()
{
    $this->productSizes = array_merge(
        $this->productSizes, [Str::random(10) => Str::random(10)]
    );
}

推荐阅读