Объединить несколько массивов в php laravel
Допустим у меня есть набор данных первого имени
first name : `{ "abc","bvd","jhhg", "jju","jju"}`
Last name : `{ "hhh","uuu","tre", "vvg","yyy"}`
Age : `{ "44","33","34", "34,"65"}`
Я хочу, чтобы результат вернулся как
{
"fname" : "abc",
"lname" : "hhh",
"age" : "44"
},
{
"fname" : "bvd",
"lname" : "uuu",
"age" : "33"
},
{
"fname" : "jhhg",
"lname" : "tre",
"age" : "34"
}
Как это сделать в php / laravel
Я достиг результата но реакция слишком медленная
$cart = array();
for($i = 1;$i<=($qty);$i++)
{
$fnames = CreateFirstName::all()->random(1);
$fname = ($fnames[0]->fname);
$images = CreateImageName::all()->random(1);
$image = ($images[0]->imagelocation);
$lnames = CreateLastName::all()->random(1);
$lname = ($lnames[0]->lname);
$cart[] = [
'id' => $images[0]->id,
'fname' => mb_substr($fname, 0, 10),
'lname' => mb_substr($lname, 0, 10),
'age' => rand(18,43),
'city' => $region_name,
'image' => $image
];
}
$collection = collect($cart);
Ответ приходит более чем через 20000 МС на сервер или локальную среду
У вопроса есть решение - Посмотреть?

"как это сделать в php / laravel" исследуйте в интернете, начните кодировать, обратитесь за помощью, если вы столкнетесь с какими-либо ошибками. Переполнение стека-это не служба написания кода. Мы всегда рады помочь и поддержать новых программистов, но вы должны помочь себе в первую очередь. Предполагается, что вы попытаетесь написать код самостоятельно. Пожалуйста, прочитайте, Как создать минимальный, воспроизводимый пример и как я могу задать хороший вопрос? .
Источник

Источник

@kobid, вам нужно всего 3 элемента или все они должны быть возвращены так, как вы поделились ожидаемым результатом?
Источник
Ответы - Объединить несколько массивов в php laravel / Merge multiple array in php laravel
Является ответом!

12.01.2020 11:52:12
Я предполагаю, что размер всех 3 массивов одинаков
$finalArray = array();
for($i=0;$i<count($firstArray);$i++){
$finalArray[] = array("fname"=>$firstArray[$i], "lname"=>$lastArray[$i],"age"=>$ageArray[$i]);
}
$finalArray
имеет то же, что и вы.

Однако это не вернет желаемый результат OP, но все элементы из массивов

вопрос был обновлен. @kerbholz

Часть "я хочу, чтобы результат возвращался как" по-прежнему содержит только три элемента

@DanyalSandeelo да его рабочий спасибо

12.01.2020 12:30:18
В качестве альтернативы принятому ответу вы также можете использовать array_map .
array_map
будет по существу принимать один или несколько массивов и перебирать их, передавая текущую итерацию каждого массива в функцию обратного вызова:
$people = array_map(function ($fname, $lname, $age) {
return [
'fname' => $fname,
'lname' => $lname,
'age' => $age,
];
}, $firstNames, $lastNames, $ages);
Затем вы можете сделать его еще короче с помощью compact
$people = array_map(function ($fname, $lname, $age) {
return compact('fname', 'lname', 'age');
}, $firstNames, $lastNames, $ages);

Лучшее решение ......
Помочь в развитии проекта: