gpt4 book ai didi

php - Laravel 不同的对象 groupBy

转载 作者:行者123 更新时间:2023-11-30 22:13:24 25 4
gpt4 key购买 nike

如何将两个不同的对象合并为一个?我想在时间轴上显示 2 个表,我需要按创建日期对它们进行分组。如果我尝试只显示一张表,它工作正常,但我想按日期将它们组合起来。因此,如果不同表中存在两行具有相同的创建日期,我希望它们按该日期分组。

    $comments = array_slice(WPComment::with('recipe')->orderBy('comment_date',
'desc')->get()->groupBy('comment_date')->toArray(), 0, 5);
$favorites = array_slice(WPFavorite::with('user')->orderBy('date_time',
'desc')->get()->groupBy('date_time')->toArray(), 0, 5);

我已经尝试使用 $object1->merge($object2) 但显然没有完全合并元素,因为已经完成了一些重写。使用 array_merge() 合并数组基本上做同样的事情。是否有一些单行解决方案而不需要编写一些讨厌的原始或双 for 循环乱码?

编辑:

之前的JSON示例

obj1:{
id: 1
title:'blah',
date: 1.1.2001
}
obj1:{
id: 2
title:'blah blah',
date: 31.4.2301
}

obj2:{
id: 1
notTitle:'blah',
somethingSomething : 'something'
date: 31.4.2301
}

之后的 JSON 示例:

1.1.2001:{
obj1:{
id: 1
title:'blah',
date: 1.1.2001
}
}
31.4.2301:{
obj1:{
id: 2
title:'blah blah',
date: 31.4.2301
}
obj2:{
id: 1
notTitle:'blah',
somethingSomething : 'something'
date: 31.4.2301
}

}

最佳答案

我已经设法用 array_merge_recursive() 方法解决了我的问题。

现在完整的解决方案:

$comments = array_slice(WPComment::with('recipe')->orderBy('comment_date',
'desc')->get()->groupBy('comment_date')->toArray(), 0, 5);
$favorites = array_slice(WPFavorite::with('user')->orderBy('date_time',
'desc')->get()->groupBy('date_time')->toArray(), 0, 5);

return array_merge_recursive($comments, $favorites);

关于php - Laravel 不同的对象 groupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39271095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com