Это массив объектов, показывающий, что пользователь загружает фотографии:
Array
(
[12] => stdClass Object
(
[type] => photo
[created] => 2010-05-14 23:36:41
[user] => stdClass Object
(
[id] => 760
[username] => mrsmith
)
[photo] => stdClass Object
(
[id] => 4181
)
)
[44] => stdClass Object
(
[type] => photo
[created] => 2010-05-14 23:37:15
[user] => stdClass Object
(
[id] => 760
[username] => mrsmith
)
[photo] => stdClass Object
(
[id] => 4180
)
)
)
Однако вместо отображения:
Я хотел бы отобразить:
- мистер Смит загрузил две фотографии
, сгруппировав похожие элементы, сгруппировав их по идентификатору пользователя и добавив их в течение, скажем, 15 минут друг от друга. Поэтому я хотел бы получить массив в такой форме:
Array
(
[12] => stdClass Object
(
[type] => photo
[created] => 2010-05-14 23:36:41
[user] => stdClass Object
(
[id] => 760
[username] => mrsmith
)
[photos] => Array
(
[0] => stdClass Object
(
[id] => 4181
)
[1] => stdClass Object
(
[id] => 4180
)
)
)
)
сохранение первого элемента группы и времени его создания, добавление к нему любых других группируемых фотографий, а затем удаление всех элементов, которые были сгруппированы (поэтому в конечном массиве больше не будет ключа 44, поскольку он был сгруппирован с ).
Массив содержит другие действия, а не только фотографии, отсюда и оригинальные ключи 12 и 44. Я просто не могу найти способ сделать это эффективно. Я использовал MySQL и PHP, чтобы сделать это, но я пытаюсь просто использовать чистый PHP для кеширования.
Может кто-нибудь пролить какие-либо идеи? Я думал о том, чтобы пройтись по каждому элементу и посмотреть, смогу ли я сгруппировать его с предыдущим в массиве, но предыдущий не обязательно будет релевантным или даже фотография. У меня полная остановка мозга: (