Возможно, есть нестандартный метод, который сделает все это за меня!
Мне нужно получить массив (чтобы поместить его в поле выбора) в форме, то есть ожидаемый результат:
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"
]
]
Что очень близко ...! Я немного застрял на последнем этапе, но мне интересно, есть ли лучший способ решить эту проблему?
Какой результат вы бы хотели получить?






Еще немного покопаемся, и выяснится, что метод pluck Eloquent позволяет достичь именно этого.
$manufacturers->pluck('manufacturer','id');
возвращает:
Collection {#562 ▼
#items: array:2 [▼
4 => "Siemens"
5 => "Dell"
]
}
Вы можете отметить свой ответ, который поможет будущим посетителям
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);
Как должен выглядеть ваш ожидаемый результат? А может я неправильно прочитал, как выглядит массив в начале?