未定义的偏移量:624

时间:2019-08-21 09:33:37

标签: php laravel

问题是当我添加超过624个贴纸时。

当贴纸小于624时,该代码可以正常工作。似乎不允许添加更多贴纸。

我似乎遇到了一个无法修复的奇怪错误。

我一直收到的错误是:未定义的偏移量:624

这就是我所拥有的:

php:

 //product names
        for ($x = 0; $x < $counter; $x++) {

            $product[] = $_POST["product_name"][$x];
            $product_price[] = preg_replace('/\s+/', '', $_POST["product_price"][$x]);
            $product_barcode[] = preg_replace('/\s+/', '', $_POST["product_barcode"][$x]);
            $product_stickers[] = preg_replace('/\s+/', '', $_POST["product_stickers"][$x]);
            $vendor_code[] = $result = $this->getUsername($user_id, $x);

        }

 $result = array();
                $values = array($product, $product_price, $product_barcode, $vendor_code, $product_stickers);
                //$values = array($product, $product_price, $product_barcode, $vendor_code);

                foreach ($products as $index => $key) {
                    $t = array();
                    foreach ($values as $value) {

                        $t[] = $value[$index];

                    }

                    $result[$key] = $t;
                }

                $products_json = json_encode($result);

html:

    @for($x = 0; $x <= 650; $x++)

    <tr>
    <td><input type="text" name="product_name[]" class="product_name"
        value="{{$x}}"></td>

    <td><input type="text" name="product_price[]" class="product_price"
         value="{{$x}}"></td>

    <td><input type="text" name="product_barcode[]"  

        class="product_barcode"
        value="{{$x}}"></td>

   <td><input type="text" name="product_stickers[]"  

       class="product_stickers"
       value="{{$x}}"></td>

   <td><a role="button" style="color:#fff" class="delRowBtn btn btn-  

    warning">Remove</a>
   </td>

   </tr>

    @endfor

我不确定为什么不能添加624个以上的贴纸 请帮忙!

2 个答案:

答案 0 :(得分:2)

可能是您正在发布更多数据,然后在php.ini中允许使用,例如。增加post_max_sizemax_input_vars

这将解决我猜到的问题。

答案 1 :(得分:0)

可能是您正在发布更多数据,然后在php.ini中允许了该数据。如果您确定代码中的所有内容,请增加post_max_size和max_input_vars ..

始终在使用变量之前检查其是否存在,尤其是在动态数组中时。 可能的问题: 1.索引从1开始,循环从0开始 2.在分配对象之前获取对象。 但是,

$product[] = $_POST["product_name"][$x] ?? null;

$product[] = (!empty($_POST["product_name"][$x])) ? $_POST["product_name"][$x] : null;

使用前请放入条件。生成动态键的所有位置,以消除数组错误。