从数组中删除重复的yyyy / mm

时间:2018-08-17 19:28:36

标签: php arrays

当日期格式为YYYY-MM-DD时,如何删除基于年份和月份的重复条目?我尝试删除几天,但是随后我需要在数组中添加最后一天,所以我的方法是错误的。

我的数组如下:

    Array
    (
        [0] => Array
            (
                [id] => 9240399
                [time] => 2018-01-01
                [pages_indexed] => 942             
            )

        [1] => Array
            (
                [id] => 9240322
                [time] => 2018-01-02
                [pages_indexed] => 940
            )

        [2] => Array
            (
                [id] => 9240344
                [time] => 2018-01-03
                [pages_indexed] => 947
            )
        [30] => Array
                (
                    [id] => 9240344
                    [time] => 2018-01-31
                    [pages_indexed] => 947
                )
        [31] => Array
                (
                    [id] => 9240344
                    [time] => 2018-02-01
                    [pages_indexed] => 1999
                )
        [32] => Array
                (
                    [id] => 9240344
                    [time] => 2018-02-02
                    [pages_indexed] => 13339
                )

请注意,我跳过了一些条目,因此我的日期是2018-01-012018-01-02等。 Array_unique在这里不起作用,因为当天不一样。

我尝试了这个:($entries['time']就像ex:2018-01-01。)

$remove = DATE("Y-m",$entries['time']);
$entriesa = array_unique($remove);
$entries['time'] = $entriesa;

1 个答案:

答案 0 :(得分:1)

好吧...您可以遍历结果并将每个键索引为Year和Month,然后使用适合该模式的行更新此索引,这意味着您只会拥有期望的行(但您只会有它们的最后引用)。

赞:

$expectedArray = [];

foreach ($arrayDuplicated as $item) {
    $indexKey = substr($item['time'], 0, 7);

    $expectedArray[$indexKey] = $item;
}