SmorodinKA, задача решается с минимальными усилиями mysql, в mysql нужно отсортировать по возрастанию по дате публикации/создания, а в php забзать что-то типа
<?php
function fetch_data_from_database()
{
return array(
array(
'id' => 1,
'name' => 'Новость 1',
'date_entered' => '2015-02-01 00:00:00',
),
array(
'id' => 2,
'name' => 'Новость 2',
'date_entered' => '2015-02-01 00:10:00',
),
array(
'id' => 3,
'name' => 'Новость 3',
'date_entered' => '2015-02-01 02:10:00',
),
array(
'id' => 4,
'name' => 'Новость 4',
'date_entered' => '2015-02-01 04:10:00',
),
array(
'id' => 5,
'name' => 'Новость 5',
'date_entered' => '2015-02-01 04:20:00',
),
);
}
$rows = fetch_data_from_database();
$blocks = array();
$block = 0;
$lastDate = null;
foreach ($rows as $row) {
$date = strtotime($row['date_entered']);
if ($date - $lastDate > 5400) {
$block++;
}
$lastDate = $date;
$blocks[$block][] = $row;
}
var_dump($blocks);
рузультат:
array(3) {
[1]=>
array(2) {
[0]=>
array(3) {
["id"]=>
int(1)
["name"]=>
string(16) "Новость 1"
["date_entered"]=>
string(19) "2015-02-01 00:00:00"
}
[1]=>
array(3) {
["id"]=>
int(2)
["name"]=>
string(16) "Новость 2"
["date_entered"]=>
string(19) "2015-02-01 00:10:00"
}
}
[2]=>
array(1) {
[0]=>
array(3) {
["id"]=>
int(3)
["name"]=>
string(16) "Новость 3"
["date_entered"]=>
string(19) "2015-02-01 02:10:00"
}
}
[3]=>
array(2) {
[0]=>
array(3) {
["id"]=>
int(4)
["name"]=>
string(16) "Новость 4"
["date_entered"]=>
string(19) "2015-02-01 04:10:00"
}
[1]=>
array(3) {
["id"]=>
int(5)
["name"]=>
string(16) "Новость 5"
["date_entered"]=>
string(19) "2015-02-01 04:20:00"
}
}
Это без учета по типу действия
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации