'how to update an array in laravel

i have an array of data in a form that i want to update.when i update only the last column updated while the inputs that i updated do change.for example, we have a column size, price, and stock. the size include small,medium, and large and their respective prices and stock number. when i update the price of small size,it doesnt update but rather it updates the medium size.same for the large size also.i havent understood why only a specfic column is updating yet i have added a foreach to loop all the columns when updating.here is my update function.

public function editattributes(Request $request,$id)
{
    $merchadisedata=Merchadise::select('id','merch_name','merch_code','merch_image')->find($id);
    if ($request->isMethod('post')){
        $data=$request->all();
        foreach($data['attrid'] as $key=>$attr){
            if(!empty($attr)){
                Productattribute::where(['id'=>$data['attrid'][$key]])
                ->update([
                    'productattr_price'=>$data['productattr_price'][$key],
                    'productattr_stock'=>$data['productattr_stock'][$key],
                ]);
            }
            $message='Product attributes have been updated successfully';
            Session::flash('success_message',$message);
            return redirect()->back();
        }
    }
    return view('backend.merchadise.editproductattributes')->with(compact('merchadisedata'));

}

on dd($data);die(); i get the inputs i have filled

here is the form in the blade file that am submitting

       <form method="post" action="{{ url('admin/edit-attributes/'.$merchadisedata->id) }}">
                {{csrf_field()}}
                <table id="products" class="table table-striped table-bordered nowrap" style="width:100%;">
                    <thead>
                        <tr>
                            <th>Attribute Size</th>
                            <th>Attribute Stock</th>
                            <th>Attribute Price</th>
                            <th>Attribute Sku</th>
                        </tr>
                    </thead>
                    <tbody>
                        @foreach ( $merchadisedata->merchadiseattributes as $attribute)
                            <input type="text" name="attrid[]" value="{{ $attribute->id }}" style="display: none"/>
                            <tr>
                                <td>{{ $attribute->productattr_size}}</td>
                                <td>
                                    <input type="number" name="productattr_stock[]" value="{{ $attribute->productattr_stock }}" required=""/>
                                </td>
                                <td>
                                    <input type="number" name="productattr_price[]" value="{{ $attribute->productattr_price }}" required=""/>
                                </td>
                                <td>{{ $attribute->productattr_sku }}</td>
                            </tr>
                        @endforeach
                    </tbody>
                </table>
                <div class="form-group">
                    <button type="submit" class="btn btn-primary btn-sm btn-block">Submit</button>
                </div>
            </form>

where might i be going wrong in my code



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source