我将mysql中的数据拉入一个多维数组,我们称之为$notes。var\u dump($notes)给出如下结果:
array (size=4)
0 =>
array (size=5)
'id' => string '5' (length=1)
'date' => string '2018-04-17 18:27:26' (length=19)
'heading' => string 'Upcoming Event' (length=14)
'name' => string 'The trip to Middleton has been cancelled' (length=40)
'due_date' => string '2018-04-24' (length=10)
1 =>
array (size=5)
'id' => string '7' (length=1)
'date' => string '2018-04-17 18:30:49' (length=19)
'heading' => string 'Special Offer' (length=13)
'name' => string 'New Books in the Library. Get 20% discount if you buy before 29th April' (length=71)
'due_date' => string '2018-04-29' (length=10)
2 =>
array (size=5)
'id' => string '8' (length=1)
'date' => string '2018-04-17 18:32:00' (length=19)
'heading' => string 'Upcoming Event' (length=14)
'name' => string 'There will be a PTA Meeting on 28th April 2018.' (length=47)
'due_date' => string '2018-04-29' (length=10)
3 =>
array (size=5)
'id' => string '3' (length=1)
'date' => string '2018-04-17 16:43:44' (length=19)
'heading' => string 'Warning' (length=7)
'name' => string 'Please avoid illegal parking as that puts our members in danger.' (length=64)
'due_date' => string '2018-07-24' (length=10);
我有一个foeach循环来处理数组。这里是我代码的相关部分。
<?php
foreach ($notes as $row) {
echo '<h3>'.$row[heading].'</h3>';
echo '<h3>'.$row[name].'</h3>';
}
?>
我得到的结果是:
即将举行的活动
去米德尔顿的旅行被取消了
特价
图书馆的新书。如果你在4月29日前购买,可以打八折
即将举行的活动
2018年4月28日将举行家长会会议。
警告
请避免非法停车,因为这会给我们的会员带来危险。
如您所见,有些标题可能出现多次,在本例中,“即将到来的事件”标题下有两个项目。
问题:如何将标题相同的项目分组?在这种情况下,只有一个即将发生的事件标题,并且两个即将发生的事件在该标题下?大约有8个标题可以使用。因此,如果每个项目都有一个唯一的标题,那么这些项目应该单独显示。例如,如果提交的所有笔记都在“即将发生的事件”下,则标题“即将发生的事件”应出现一次,在该标题下列出所有即将发生的事件。
我认为它需要一些自定义函数和数组Map,但我没有在这个方向上找到任何东西。请帮忙。
2条答案
按热度按时间vohkndzv1#
你首先要做的是整理你的数据。首先要对数据进行分组。你可以通过分类来实现。您可以创建自己的排序函数,然后使用usort函数。之后,你将不得不检查最后一个标题和打印,如果它是不一样的。
bqf10yzr2#
如果您按标题对数组/结果进行排序,您应该能够只观察标题何时更改,例如: