二维数组进行排序并且合并
2018-02-08 10:49
148 查看
之前项目要到一个这样的需求:
表结构:
我这边想实现一个 列表显示:某个时间下的(grouo_time年月日)哪位大咖(作者did)发表了哪些文章,合并到一起
产品原型憋了很长时间,因为前期产品不固定,就让我们这群程序员开始写,写着写着需求又变了然后各种修改 ,搞的自己都开始怀疑人生了。
laravel+ORM(mongodb)
第一步:
打印的结果如下:
第二步:
$article_sort = self::initArray($group_time); 对当前的数组进行整理
public static function initArray(array $array)
{
$newArray = [];
foreach ($array as $item) {
if (isset($newArray[$item['group_time']])) {
$newArray[$item['group_time']]['list'][] = ['title'=>$item['article_title'],'introduction_first'=>$item['introduction_first'],'editor_url'=>$item['editor_url'], 'covers_url'=>$item['covers_url'],'add_time'=>$item['add_time']];
} else {
$arrays = [
'title'=>$item['article_title'],
'introduction_first'=>$item['introduction_first'],//导言1
'editor_url'=>$item['editor_url'],//编辑上传图片
'covers_url'=>$item['covers_url'],//编辑上传图片
'add_time'=>$item['add_time']//编辑上传图片
];
$newArray[$item['group_time']] = ['group_time' => date('Y-m-d',$item['group_time']),'nickname'=>$item['dern_info']['nickname'],'avatar'=>$item['dern_info']['avatar'],'did'=>$item['did'], 'list' => [$arrays]];
// dd($newArray);
}
}
return $newArray;
}另一种转换方法:
我用的上面哪个,主要下面这种写法看起来怪怪的
最后打印article_sort 就是我们最终实现的效果了:
这里面很多地方值得优化,这边只是做了一个简单的demo。
表结构:
我这边想实现一个 列表显示:某个时间下的(grouo_time年月日)哪位大咖(作者did)发表了哪些文章,合并到一起
产品原型憋了很长时间,因为前期产品不固定,就让我们这群程序员开始写,写着写着需求又变了然后各种修改 ,搞的自己都开始怀疑人生了。
laravel+ORM(mongodb)
第一步:
打印的结果如下:
第二步:
$article_sort = self::initArray($group_time); 对当前的数组进行整理
public static function initArray(array $array)
{
$newArray = [];
foreach ($array as $item) {
if (isset($newArray[$item['group_time']])) {
$newArray[$item['group_time']]['list'][] = ['title'=>$item['article_title'],'introduction_first'=>$item['introduction_first'],'editor_url'=>$item['editor_url'], 'covers_url'=>$item['covers_url'],'add_time'=>$item['add_time']];
} else {
$arrays = [
'title'=>$item['article_title'],
'introduction_first'=>$item['introduction_first'],//导言1
'editor_url'=>$item['editor_url'],//编辑上传图片
'covers_url'=>$item['covers_url'],//编辑上传图片
'add_time'=>$item['add_time']//编辑上传图片
];
$newArray[$item['group_time']] = ['group_time' => date('Y-m-d',$item['group_time']),'nickname'=>$item['dern_info']['nickname'],'avatar'=>$item['dern_info']['avatar'],'did'=>$item['did'], 'list' => [$arrays]];
// dd($newArray);
}
}
return $newArray;
}另一种转换方法:
我用的上面哪个,主要下面这种写法看起来怪怪的
function initArray(array $array) { $newArray = []; array_map(function ($item) use(&$newArray){ if (isset($newArray[$item['group_time']])) { $newArray[$item['group_time']]['did'][] = $item['did']; } else { $newArray[$item['group_time']] = ['group_time' => $item['group_time'], 'did' => [$item['did']]]; } },$array); return $newArray; }
最后打印article_sort 就是我们最终实现的效果了:
这里面很多地方值得优化,这边只是做了一个简单的demo。
相关文章推荐
- 合并并且排序指针数组和二维数组里面存放的字符串用函数调用的格式
- 合并两个数组为一个数组,并且对新数组进行排序
- Python对两个有序列表进行合并和排序的例子
- C语言单向动态链表程序,实现链表的建立,合并,重新排序,链表元素的插入与删除,以及根据元素成员的值进行元素删除。
- asp.net中对DataTable数据进行排序、检索、合并、分页、统计
- php 对二维数组的某个键的值进行排序
- 实现两个有序单链表的合并。要求:随机创建两个单链表,实现单链表的排序,再对两个有序单链表进行合并。
- PHP二维数组根据某一个字段进行排序
- 【Python】简单例题tuple和list的转换;实现删除一个list里重复的元素;对list a进行排序,并且从最后一个开始删除重复元素
- PHP 二维数组根据相同的值进行合并
- 代码分享:php对二维数组进行排序
- /*将数组{17,82,-4,55}和数组{34,11,66,56,76}合并放入一个数组中,然后 对其中的元素进行排序。按从大到小排序。*/
- 给定一组不重叠的间隔,在间隔中插入一个新的间隔(如有必要,合并)。间隔最初按照起始时间进行排序。
- PHP中按二维数组的某个字段进行排序类
- php对二维数组进行排序、二维数组去掉重复值
- PHP对二维数组按字段进行排序
- 用一个函数对二维数组进行排序
- 用qsort对二维数组进行排序
- PHP按指定键值对二维数组进行排序的方法
- [转]asp.net中对DataTable数据进行排序、检索、合并、分页、统计