在laravel中合并两个数组值

Posted

技术标签:

【中文标题】在laravel中合并两个数组值【英文标题】:merge two array value in laravel 【发布时间】:2017-02-22 13:29:42 【问题描述】:

我想在 laravel 5.3 中合并两个数组。我有返回变量 '$type'

`Illuminate\Support\Collection Object ( [items:protected] => Array ( [1] => rinu )`

从查询中得到

$type0=DB::table('users')->where('name','=',$head)->pluck('name','id');

我想与返回的数组 $type1 合并

Illuminate\Support\Collection Object ( [items:protected] => Array ( [2] => john ) ) 
Illuminate\Support\Collection Object ( [items:protected] => Array ( [3] => dinesh ) )
Illuminate\Support\Collection Object ( [items:protected] => Array ( [4] => mahesh ) ) 
Illuminate\Support\Collection Object ( [items:protected] => Array ( ) )

$type1=DB::table('users')->where('name','=',$head)->pluck('name','id');

我尝试将其合并并存储在 $type0 中;

$type0=$type0->merge($type1);

返回错误的值

Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => rinu [1] => john ) ) 
Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => rinu [1] => john [2] => dinesh ) ) 
Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => rinu [1] => john [2] => dinesh [3] => mahesh ) ) 
Illuminate\Support\Collection Object ( [items:protected] => Array ( [0] => rinu [1] => john [2] => dinesh [3] => mahesh ) )`

enter code here

【问题讨论】:

【参考方案1】:

如果你想接收合并的array(而不是collection),你可以使用toArray()array_merge()函数:

$mergedArray = array_merge($type0->toArray(), $type1->toArray());

【讨论】:

在 7BB347C8C194579700A647DADD62EA3D8E0AB68A.php 行 358 中捕获 FATALERROREXCEPTION:在阵列上调用成员函数 TOARRAY()【参考方案2】:

您似乎对每个值都有一个集合。因此,您可能是独立获取每个值,而不是一次性获取。

您的问题可能通过使用whereIn 而不是多个wheres 来解决。

$result = DB::table('users')
            ->whereIn('name', ['John', 'Dinesh', 'Mahesh'])
            ->get();

【讨论】:

以上是关于在laravel中合并两个数组值的主要内容,如果未能解决你的问题,请参考以下文章

在 Laravel 上合并数组

如何在laravel中合并两个相似的对象

如果键值相同,如何合并 laravel 集合?或添加新的数据行

如何在 laravel 5.8 中合并两个 sql 表

Laravel 验证 - 数组字段,仅允许两个字段之一,但都不是必需的

我们如何使用 apiresources laravel 将多个关系合并到一维数组中