Здравствуйте.
У меня есть таблица, в которой следующий порядок
1 - Собака (name)
поводок, поводырь, мячик, кость - (elems)
01.01.2020 (date)
2 - Кот (name)
сметана, корм, шерсть (elems)
02.01.2020 (date)
3 - Собака (name)
подстричь, поводок, команды (elems)
03.01.2020 (date)
4 - Кот (name)
рано, лоток, спать, диван, пылесос (elems)
04.01.2020 (date)
Получаю массив таких данных и разбираю его. Это самый простой пример кода
$where = newQuery('animals');
$where->where(array(
'name' => $names, // допустим в переменой хранятся два имени (собака, кот)
'date':>=' => '0'
));
$where->sortby('date', 'DESC');
$array = getCollection($animals, $where);
foreach($animals as $animal){
$animalName = $animal->get('name');
$animalStuff = $animal->get('elems');
$date = date('d.m.Y, H:i', strtotime($animal->get('date')));
$res .= $animalName.'=>'.$animalStuff.'=>'.$date;
}
echo $res;
В итоге в выводе получаю всё. То есть:
- Собака - элементы... 01.01.2020
- Кот - элементы... 02.01.2020
- Собака - элементы... 03.01.2020 (снова собака только уже с другими элементами и другой датой)
- Кот - элементы... 04.01.2020 (снова кот только уже с другими элементами и другой датой)
Вопрос:
Каким образом можно сделать чтобы имя каждого животного выводилось только единожды и последнее из БД с сортировкой по дате?
Вот так:
- Собака - элементы из таблицы
где дата 03.01.2020
- Кот - элементы из таблицы
где дата 04.01.2020