<?php
$listOfPosts = [
[
'date' => '2017-06-01',
'id' => 1,
],
[
'date' => '2017-06-01',
'id' => 2,
],
[
'date' => '2017-06-01',
'id' => 3,
],
[
'date' => '2017-06-02',
'id' => 4,
],
[
'date' => '2017-06-03',
'id' => 5,
],
[
'date' => '2017-06-04',
'id' => 6,
],
];
$listOfPostsPage2 = [
[
'date' => '2017-06-05',
'id' => 1,
],
[
'date' => '2017-06-06',
'id' => 2,
],
[
'date' => '2017-06-07',
'id' => 3,
],
[
'date' => '2017-06-08',
'id' => 4,
]
];
$amountOfDays = 6;
$newPostsArr = [];
foreach($listOfPosts as $tmp) {
if (count($newPostsArr) === $amountOfDays) {
var_dump('All days added');
// We are done.
break;
}
$newPostsArr[$tmp['date']][] = $tmp;
}
// Or like this
function iteratePosts($pages, $newPosts) {
foreach($pages as $tmp) {
$newPosts[$tmp['date']][] = $tmp;
}
return $newPosts;
}
$newPostsArr = iteratePosts($listOfPosts, $newPostsArr);
if (count($newPostsArr) < $amountOfDays) {
// Fetch new page, keep adding entries
var_dump('iterating again..');
$newPostsArr = iteratePosts($listOfPostsPage2, $newPostsArr);
}
var_dump($newPostsArr);
preferences:
51.04 ms | 402 KiB | 5 Q