Php 基于仅保留最新值的值(基于时间戳的第二个值)删除数组中的重复对象

Php 基于仅保留最新值的值(基于时间戳的第二个值)删除数组中的重复对象,php,arrays,Php,Arrays,如何返回仅包含一个“项目1”和一个“项目2”的新数组,其中保存的项目是具有最新时间戳的项目 看到了一大堆类似的问题,但没有发现任何我可以解决的问题或适合我的情况的问题。只要一个foreach和时间戳的比较就足以实现这一点: [ { title: "Item 1", dateModified: 1598208392600 }, { title: "Item 1", dat

如何返回仅包含一个“项目1”和一个“项目2”的新数组,其中保存的项目是具有最新时间戳的项目


看到了一大堆类似的问题,但没有发现任何我可以解决的问题或适合我的情况的问题。

只要一个foreach和时间戳的比较就足以实现这一点:

[
    {
        title: "Item 1",
        dateModified: 1598208392600
    },
    {
        title: "Item 1",
        dateModified: 1598208395105
    },
    {
        title: "Item 1",
        dateModified: 1598210504648
    },
    {
        title: "Item 2",
        dateModified: 1598210604491
    },
    {
        title: "Item 2",
        dateModified: 1598210612439
    }
]

这些是数组或数组内的对象?数组内的对象
<?php

$data = [
    (object)[
        'title' => "Item 1",
        'dateModified' => 1598208392600
    ],
    (object)[
        'title' => "Item 1",
        'dateModified' => 1598208395105
    ],
    (object)[
        'title' => "Item 1",
        'dateModified' => 1598210504648
    ],
    (object)[
        'title' => "Item 2",
        'dateModified' => 1598210604491
    ],
    (object)[
        'title' => "Item 2",
        'dateModified' => 1598210612439
    ],
];

$filtered = [];
foreach ($data as $row) {
  if (!isset($filtered[$row->title])) {
    $filtered[$row->title] = $row;
  }

  if ($filtered[$row->title]->dateModified < $row->dateModified) {
    $filtered[$row->title] = $row;
  }
}

var_dump($filtered);
array(2) {
  ["Item 1"]=>
  object(stdClass)#3 (2) {
    ["title"]=>
    string(6) "Item 1"
    ["dateModified"]=>
    int(1598210504648)
  }
  ["Item 2"]=>
  object(stdClass)#5 (2) {
    ["title"]=>
    string(6) "Item 2"
    ["dateModified"]=>
    int(1598210612439)
  }
}