Laravel Eloquent получает одномерный массив из базы данных

Возможно, есть нестандартный метод, который сделает все это за меня!

Мне нужно получить массив (чтобы поместить его в поле выбора) в форме, то есть ожидаемый результат:

array: [
  "4" => "Siemens"
  "5" => "Dell"
]

В настоящее время делаю (использую Eloquent):

$array = $this->get(['id','manufacturer'])->toArray();

Что производит:

array:2 [▼
  0 => array:2 [▼
    "id" => 4
    "manufacturer" => "Siemens"
  ]
  1 => array:2 [▼
    "id" => 5
    "manufacturer" => "Dell"
  ]
]

Затем я делаю:

$test = [];
$i=0;
$key='';
$value='';
$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($it as $v) {
    $i++;
    if ($i % 2 == 0) {
        $key = $v;
        array_push($test,[$key=>$value]);
    } else {
        $value = $v;

    }
}

Что производит:

array:2 [▼
  0 => array:1 [▼
    4 => "Siemens"
  ]
  1 => array:1 [▼
    5 => "Dell"
  ]
]

Что очень близко ...! Я немного застрял на последнем этапе, но мне интересно, есть ли лучший способ решить эту проблему?

Как должен выглядеть ваш ожидаемый результат? А может я неправильно прочитал, как выглядит массив в начале?

Andreas 20.03.2018 19:18

Какой результат вы бы хотели получить?

Rob Biermann 20.03.2018 19:18
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
49
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Еще немного покопаемся, и выяснится, что метод pluck Eloquent позволяет достичь именно этого.

$manufacturers->pluck('manufacturer','id');

возвращает:

Collection {#562 ▼
  #items: array:2 [▼
    4 => "Siemens"
    5 => "Dell"
  ]
}

Вы можете отметить свой ответ, который поможет будущим посетителям

Serving Quarantine period 21.03.2018 08:41

Array_combine и array_column могут делать то, что вам нужно.

$arr =[
   0 => [
      "id" => 4,
      "manufacturer" => "Siemens",
   ],
   1 => [
      "id" => 5,
      "manufacturer" => "Dell"
   ]
];

$res = array_combine(array_column($arr, "id"), array_column($arr, "manufacturer"));
Var_dump($res);

https://3v4l.org/4f495

Другие вопросы по теме