Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 12.06.2020 00:25:15

Преобразовать массив в многомерный

Версия  Laravel Framework 5.4.36
Версия PHP 7.1.22
Windows 7 x64
OpenServer


В контроллере метод store принимает данные из формы. Есть массив:

array:9 [▼
  "title" => "объект"
  "description" => "описание"
  "property" => "свойство"
  "image_description1" => "описание изображения1"
  "image_description2" => "описание изображения2"
  "image_description3" => "описание изображения3"
  "image1" => UploadedFile {#172 ▶}
  "image2" => UploadedFile {#175 ▶}
  "image3" => UploadedFile {#175 ▶}
]

Каким методом или их комбинацией вытащить из данного массива его часть по маске ключа, например image и получить

array:6 [▼
  "image_description1" => "описание изображения1"
  "image_description2" => "описание изображения2"
  "image_description3" => "описание изображения3"
  "image1" => UploadedFile {#172 ▶}
  "image2" => UploadedFile {#175 ▶}
  "image3" => UploadedFile {#175 ▶}
]

а затем преобразовать в массив вида:

array:3 [▼
  0 => array:2 [▼
    "image1" => UploadedFile {#172 ▶}
    "image_description1" => "описание изображения1"
  ]
  1 => array:2 [▼
    "image2" => UploadedFile {#175 ▶}
    "image_description2" => "описание изображения2"
  ]
  2 => array:2 [▼
    image3" => UploadedFile {#175 ▶}
    "image_description3" => "описание изображения3"
  ]
]

Пробовал через метод only(), но получается громоздко

$filtered1 = $request->only(['image1', 'image_description1']);
$filtered2 = $request->only(['image2', 'image_description2']);
$filtered3 = $request->only(['image3', 'image_description3']);

да и опять останавливаюсь перед той же задачей, так как вариант $result = [$filtered1, $filtered2, $filtered3] как-то топорно.

Изменено Wincor (12.06.2020 01:03:44)

Не в сети

#2 13.06.2020 02:45:07

Re: Преобразовать массив в многомерный

Меня всегда поражали люди, которые сами себе создают трудности затем, чтобы их в последствии героически преодолевать.
Ну вот кто Вам мешает на форме сразу создать многомерный массив нужной структуры и не заниматься маст... медитацией?

Ведь очевидно, что image1 и image_description1 это какие-то поля ввода, автоматически генерируемые на форме с помощью js, так что мешает сразу оформить их как надо?

Не в сети

#3 13.06.2020 22:30:18

Re: Преобразовать массив в многомерный

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

Возможно, так происходит у новичков, кем я и являюсь. Реализую работу на том уровне, на котором могу на данный момент. А поразиться или  удивиться - это был Ваш выбор и Вы его сделали.

Ведь очевидно, что image1 и image_description1 это какие-то поля ввода, автоматически генерируемые на форме с помощью js, так что мешает сразу оформить их как надо?

Не очевидно. У меня форма статична. Но за наводку спасибо.

Не в сети

Подвал раздела