Есть массив
[{"id":256,"owner":"2","to":"1","message":"312"},
{"id":257,"owner":"2","to":"1","message":"312"},
{"id":258,"owner":"1","to":"1","message":"3125"},
{"id":259,"owner":"3","to":"1","message":"3162"},
{"id":260,"owner":"2","to":"1","message":"3125"}]
В котором значение to
всегда одинаковое, message
как повезет(совпадет или нет), а owner
разное, с повторениями, как удалить все повторения, которые встречаются в owner
и оставить по 1 значению с наибольшим id
(То есть последнее)
Пробовал воспользоваться функцией array_unique
но она удаляет всё, так как to
у всех одинаковое
Решение, при условии что данные предварительно отсортированы по id :
$data = [
["id" => 256, "owner" => "2", "to" => "1", "message" => "312"],
["id" => 257, "owner" => "2", "to" => "1", "message" => "312"],
["id" => 258, "owner" => "1", "to" => "1", "message" => "3125"],
["id" => 259, "owner" => "3", "to" => "1", "message" => "3162"],
["id" => 260, "owner" => "2", "to" => "1", "message" => "3125"]
];
foreach ($data as $item) {
$ret[$item['owner']] = $item;
}
var_dump($ret);
Если сортировка в массиве будет по ID, то можно попробовать такой способ
<?php //php 7.0.8
$values = '[
{"id":256,"owner":"2","to":"1","message":"312"},
{"id":257,"owner":"2","to":"1","message":"312"},
{"id":258,"owner":"1","to":"1","message":"3125"},
{"id":259,"owner":"3","to":"1","message":"3162"},
{"id":260,"owner":"2","to":"1","message":"3125"}
]';
$values = json_decode($values, true);
$array = [];
foreach($values as $val){
$array[$val['owner']] = [
'id' => $val['id'],
'to' => $val['to'],
'message' => $val['message']
];
}
var_dump($array);
?>
(выполнить код в rextester)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно регулярное выражение, и именно это, больше ничего
С помощью ajax я отправляю запрос серверуСервер посылает мне url адресс (строку) на которую мне надо перейти с помощью javascript