отправить значения повторителя формы в виде массива и перебрать каждый - PullRequest
0 голосов
/ 21 октября 2018

У меня есть повторитель формы, подобный этому образ повторителя формы

, который представляет код (должен быть одинаковым во всем) название продукта и количество в тысячах.например,

  • код-1234, книга-продукт Кол-во - 5000
  • код-1234, продукт-ручка Кол -3000
  • код-1234, продукт-линейка Кол-во 2000

я хотел бы представить в db все вышеуказанные данные в виде json с инкрементным идентификатором на общее количество элементов в данном случае 10 000 и именем продукта рядом с каждым идентификатором.Имя продукта должно заканчиваться там, где заканчивается его конкретное количество, например, когда идентификаторы достигают 5000, следующий идентификатор должен быть 5001 и имя, на котором начинается показ пера.

Я пробовал это `

//array submited from form
$array = $request->get('arrayName');

foreach ($array as $key => $value) {
    $items[] = $value['no_of_items'];
    $a_sum = array_sum($items);

    $length = 15;
    $string = bin2hex(openssl_random_pseudo_bytes($length));
    $maxNumberOfItems = $a_sum;

    for ($a = 0; $a <= $maxNumberOfItems; $a++) {
        if ($a <= reset($items) && $a === $maxNumberOfItems) {
            $a = reset($items);
        }

        echo +$a . " => " . $value['item'] . "<br> ";
        $temp = bin2hex(openssl_random_pseudo_bytes($length));

        $coupons[] = [
             'id' => +$a,
             'item' => $value['item'],
             'code' => $temp,
             'item_status' => 'in-store',
         ];

    }`

Он отображает имена правильно, но не выполняет автоматическое увеличение идентификатора, как описано выше.В тот момент, когда он достигает, скажем, 5000, следующий элемент начинается с 0 вместо 5001. Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 24 октября 2018

Вам может потребоваться вручную получить MAX (идентификатор) и сделать:

для ($ a = $ maxId; $ a <= $ maxNumberOfItems + $ maxId; $ a ++) </p>

...