Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php laravel中合并多个数组_Php_Laravel_Object_Arraylist - Fatal编程技术网

在php laravel中合并多个数组

在php laravel中合并多个数组,php,laravel,object,arraylist,Php,Laravel,Object,Arraylist,假设我有一组名为的数据 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"

假设我有一组名为的数据

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毫秒

我假设所有3个阵列的大小都相同

$finalArray = array();
for($i=0;$i<count($firstArray);$i++){
    $finalArray[] = array("fname"=>$firstArray[$i], "lname"=>$lastArray[$i],"age"=>$ageArray[$i]);
} 

$finalArray拥有您所拥有的。

作为公认答案的替代方案,您也可以使用

array_map实质上将获取一个或多个数组,并通过将每个数组的当前迭代传递给回调函数来迭代它们:

$people = array_map(function ($fname, $lname, $age) {
    return [
        'fname' => $fname,
        'lname' => $lname,
        'age'   => $age,
    ];
}, $firstNames, $lastNames, $ages);
然后,您可以使用


如何在互联网上的php/laravel研究中做到这一点,开始编码,如果遇到任何错误,请寻求帮助。堆栈溢出不是代码编写服务。我们总是很乐意帮助和支持新的程序员,但你需要先帮助自己。您应该尝试自己编写代码。请阅读和。另外,请补充一点细节:应该只返回前三个数据集吗?或者jju是不允许被包括在内的吗?@kobid,你是否只需要3个元素或者全部元素就可以按照你在预期输出中共享的方式返回?虽然这不会返回OP想要的结果,但是数组中的所有元素我希望结果作为一部分返回的仍然只有3个元素
$people = array_map(function ($fname, $lname, $age) {
    return compact('fname', 'lname', 'age');
}, $firstNames, $lastNames, $ages);