@verygoodboy

Как сгрупировать значения multiselect инпута в подмассивы если в форме несколько multiselect инпутов с одним названием tags[]?

Всем привет. Столкнулся с задачей, и не могу придумать решение.
Есть форма, а внутри формы есть таблица. У таблицы есть колонка Tags. В каждой ячейке этой колонки есть инпут, в котором можно выбрать несколько тэгов, например:
<td>
<select name="tags[]" class="select2" multiple="multiple" data-placeholder="Select tags">
            @foreach($tags as $k => $v)
                             <option value="{{ $k }}">{{ $v }}</option>
            @endforeach
</select>
</td>


Таких инпутов в этой форме может быть много. И теги пользователь может выбрать разные. При сохранении формы получается такой массив:
'tags' => [
    0 => "1"
    1 => "2"
    2 => "1"
    3 => "2"
    4 => "1"
    5 => "2"
    6 => "1"
    7 => "2"
    8 => "1"
    9 => "2"
    10 => "1"
   ...
]


Получается, что значения всех инпутов добавляются в один массив tags.

Задача заключается в следующем, как сделать так, чтобы при сохранении формы значения из отдельных инпутов были в подмассиве массива tags?

Например:
'tags' =>  [
    0 => [
            0 => "1"
            1 => "2"
    ],
    1 => [
            0 => "1"
            1 => "2"
    ],
    2 => [
            0 => "1"
            1 => "2"
    ],
    3 => [
            0 => "1"
            1 => "2"
    ],
   
   ...
]


Это позволит мне сохранить каждый вложенный подмассив массива tags для конкретного объекта модели Post
  • Вопрос задан
  • 64 просмотра
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Если в форме несколько multiselect инпутов с одним названием tags[], то, разумеется, никак.
Чтобы при сохранении формы значения из отдельных инпутов были в подмассиве массива tags, надо добавить эти подмассивы. Л - Логика.
tags[0][]=
tags[1][]=
и так далее
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы