将Laravel集合添加到另一个集合中

时间:2017-02-27 20:02:57

标签: php arrays laravel laravel-5

我试图在Laravel 5.3中附加一个Eloquent系列和另一个Eloquent系列。

这是我到目前为止所做的:

$entries = Entry::all();
$posts   = Post::all();

$entries->merge($posts);

我尝试像上面的代码一样使用merge(),但似乎我遇到了这种问题(因为其中一些问题具有相同的id相同):

Collection merge eating up some rows

有什么想法吗?

5 个答案:

答案 0 :(得分:14)

我相信你可以合并这两个雄辩的集合:

$mergedCollection = $entries->toBase()->merge($posts);

在此之后,所有条目都是collection

答案 1 :(得分:1)

我相信您可能正在寻找import requests body ={ 'draw':4, 'columns[0][data]':'Details.Symbol', #'columns[0][name]' : '', 'columns[0][searchable]': True, 'columns[0][orderable]': True, #'columns[0][search][value]' : '', 'columns[0][search][regex]':False, 'columns[1][data]':'Details.CompanyName', #'columns[1][name]' : '', 'columns[1][searchable]': True, 'columns[1][orderable]':True, #'columns[1][search][value]' : '', 'columns[1][search][regex]':False, 'columns[2][data]':'Details.EarnDate', #'columns[2][name]' : '', 'columns[2][searchable]':True, 'columns[2][orderable]': True, #'columns[2][search][value]':'', 'columns[2][search][regex]':False, 'columns[3][data]':'Details.TimeOfDayValue', 'columns[3][name]':'TimeOfDayValue', 'columns[3][searchable]':True, 'columns[3][orderable]':True, 'columns[3][search][value]': '0 to 1', # 'columns[3][search][regex]':False, 'columns[4][data]':'Details.ReportedPRValue', #'columns[4][name]' : '', 'columns[4][searchable]': True, 'columns[4][orderable]':True, #'columns[4][search][value]' :'', 'columns[4][search][regex]': False, 'columns[5][data]':'Details.ConfCallStr', #'columns[5][name]' : '', 'columns[5][searchable]': True, 'columns[5][orderable]':True, #'columns[5][search][value]': '', 'columns[5][search][regex]': False, 'columns[6][data]':'Details.PrevEarnEffectValue', #'columns[6][name]' : '', 'columns[6][searchable]': True, 'columns[6][orderable]':True, #'columns[6][search][value]': '', 'columns[6][search][regex]':False, 'columns[7][data]':'Details.IVStraddleValue', #'columns[7][name]' : '', 'columns[7][searchable]': True, 'columns[7][orderable]':True, #'columns[7][search][value]': '', 'columns[7][search][regex]':False, 'columns[8][data]':'Details.ThisEarnEffectValue', #'columns[8][name]' : '', 'columns[8][searchable]': True, 'columns[8][orderable]':True, # 'columns[8][search][value]': '', 'columns[8][search][regex]':False, 'columns[9][data]':'Details.OptVolumeTotal', #'columns[9][name]' : '', 'columns[9][searchable]': True, 'columns[9][orderable]':True, # 'columns[9][search][value]': '', 'columns[9][search][regex]':False, 'columns[10][data]':'Details.MarketCapTotal', #'columns[10][name]' : '', 'columns[10][searchable]': True, 'columns[10][orderable]':True, # 'columns[10][search][value]' : '', 'columns[10][search][regex]':False, 'columns[11][data]':'Details.AvgOptVolume', 'columns[11][name]':'AvgOptVolume', 'columns[11][searchable]': True, 'columns[11][orderable]': True, # 'columns[11][search][value]' : '', 'columns[11][search][regex]' : False, 'columns[12][data]':'Stats_Last4.AbsAvgMove', 'columns[12][name]':'Last4_AbsAvg', 'columns[12][searchable]':True, 'columns[12][orderable]':True, # 'columns[12][search][value]' : '', 'columns[12][search][regex]':False, 'columns[13][data]':'Stats_Last4.AbsMinMove', 'columns[13][name]':'Last4_AbsMin', 'columns[13][searchable]':True, 'columns[13][orderable]':True, # 'columns[13][search][value]': '', 'columns[13][search][regex]': False, 'columns[14][data]':'Stats_Last4.AbsMaxMove', 'columns[14][name]':'Last4_AbsMax', 'columns[14][searchable]':True, 'columns[14][orderable]':True, # 'columns[14][search][value]' : '', 'columns[14][search][regex]': False, 'columns[15][data]':'Details.IVStraddleValue', 'columns[15][name]':'Last4_Expected', 'columns[15][searchable]':True, 'columns[15][orderable]':True, # 'columns[15][search][value]': '', 'columns[15][search][regex]': False, 'columns[16][data]':'Stats_Last4.RelativeValue', 'columns[16][name]':'Last4_Relative', 'columns[16][searchable]':True, 'columns[16][orderable]':True, # 'columns[16][search][value]': '', 'columns[16][search][regex]':False, 'columns[17][data]':'Stats_Last12.AbsAvgMove', 'columns[17][name]':'Last12_AbsAvg', 'columns[17][searchable]':True, 'columns[17][orderable]':True, # 'columns[17][search][value]': '', 'columns[17][search][regex]': False, 'columns[18][data]':'Stats_Last12.AbsMinMove', 'columns[18][name]':'Last12_AbsMin', 'columns[18][searchable]': True, 'columns[18][orderable]':True, # 'columns[18][search][value]': '', 'columns[18][search][regex]':False, 'columns[19][data]':'Stats_Last12.AbsMaxMove', 'columns[19][name]':'Last12_AbsMax', 'columns[19][searchable]':True, 'columns[19][orderable]':True, # 'columns[19][search][value]': '', 'columns[19][search][regex]': False, 'columns[20][data]':'Details.IVStraddleValue', 'columns[20][name]':'Last12_Expected', 'columns[20][searchable]':True, 'columns[20][orderable]':True, #'columns[20][search][value]': '', 'columns[20][search][regex]':False, 'columns[21][data]':'Stats_Last12.RelativeValue', 'columns[21][name]':'Last12_Relative', 'columns[21][searchable]':True, 'columns[21][orderable]':True, #'columns[21][search][value]': '', 'columns[21][search][regex]': False, 'columns[22][data]':'Details.ConfirmationTypeMulti', 'columns[22][name]':'ConfirmationTypeMulti', 'columns[22][search][value]':'Announced', 'columns[22][searchable]':True, 'columns[22][orderable]':True, #'columns[22][search][value]': '', 'columns[22][search][regex]':False, 'columns[23][data]':'Details.StockTypeMulti', 'columns[23][name]':'StockTypeMulti', 'columns[23][searchable]':True, 'columns[23][orderable]':True, #'columns[23][search][value]':'', 'columns[23][search][regex]':False, 'columns[24][data]':'Details.HasOptions', 'columns[24][name]':'HasOptions', 'columns[24][searchable]':True, 'columns[24][orderable]': True, 'columns[24][search][value]':'', 'columns[24][search][regex]': False, 'columns[25][data]':'InWatchlist', 'columns[25][name]':'InWatchlist', 'columns[25][searchable]':True, 'columns[25][orderable]':True, #'columns[25][search][value]':'', 'columns[25][search][regex]':False, 'columns[26][data]':'Details.CurrentStockPrice', 'columns[26][name]':'CurrentStockPrice', 'columns[26][searchable]':True, 'columns[26][orderable]':True, 'columns[26][search][regex]': False, 'order[0][column]':10, 'order[0][dir]':'desc', 'start':0, 'length': -1, 'search[value]':'', 'search[regex]':False} with requests.Session() as s: r = s.get('https://marketchameleon.com/Calendar/Earnings?d=20190712') r = s.post('https://marketchameleon.com/Calendar/EarningsInnerData?d=20190712', data = body).json() 。不管哪个容器的键,它都会将一个容器附加到另一个容器的末尾。

concat()

答案 2 :(得分:0)

merge()方法接收一个数组,所以你必须做类似

的事情
$entries->merge($posts->toArray());

Laravel Collections: merge() method

答案 3 :(得分:0)

如果您需要合并big_products和small_products:

$products = $bigProducts->values()->merge($smallProducts->values());

merge方法将给定的数组或集合与原始集合合并。如果给定项目中的字符串键与原始集合中的字符串键匹配,则给定项目的值将覆盖原始集合中的值。

但是

如果给定项目的键是数字键,则值将附加到集合的末尾:

因此,您所需要做的就是摆脱键,您可以使用->values()函数来做到这一点。

在Laravel-6上测试

答案 4 :(得分:0)

以下是链接:laravel7.X

$collection = collect(['Desk', 'Chair']);

$merged = $collection->merge(['Bookcase', 'Door']);

$merged->all();