Удалить и посчитать дубли из массива php

121
03 января 2021, 07:10

Можно удалить дубли из массива и параллельно записывать, сколько дублей было удалено в отдельный массив?

То есть, у меня есть массив, где один из ключей это дата (показывает кол-во переходов за день), я хочу удалить одинаковые даты и оставить только одну. При этом показывать сколько было дублей в каждом из дней (это покажет переходы за день). Спасибо!

Текущий массив времени Unix:

$times = [1557262800000,1557262800000,1257262800000];

Нужно довести до:

$day_time = [1557262800000,1257262800000];
$transit = [2, 1] // 2 и 1 тк было два дубля далее один
Answer 1

Я вас правильно понял?

<?php 
$array = [151,151,167,167,167,333];
$temp = [];
foreach ($array as $item) {
    if (!isset($temp[$item])) $temp[$item] = 0;
    $temp[$item]++;
}
print_r($temp); // [151 => 2, 167 => 3, 333 => 1]
$day_time = array_keys($temp);
print_r($day_time); // [0 => 151, 1 => 167, 2 => 333]
$transit = array_values($temp);
print_r($transit); // [0 => 2, 1 => 3, 2 => 1]

Ну или по наводке @u_mulder можно так:

print_r(array_count_values($array)); // [151 => 2, 167 => 3, 333 => 1]
READ ALSO
PHPStorm не видит базу MySQL

PHPStorm не видит базу MySQL

Через OpenServer запускаю PHPMyAdmin, создаю базу MySQL и таблицу, сохраняю

97
Получение определенных данных из бд

Получение определенных данных из бд

Мне нужно найти запись в бд, по двум полям id и name

127
Как передать массив из js в php

Как передать массив из js в php

Немного осваиваю js, jqery, но практически не знаю phpЗадача какая, у меня дан массив "out" с множеством объектов

143