Здравствуйте!
У меня есть массив строчных элементов, в котором 50 000 элементов, из них необходимо оставить уникальные.
При попытке использовать array_unique, на этой функции вешается сервер и ничего не происходит часами...
Я написал свою функцию. Но, насколько она оптимальна?
Прошу совета, есть ли алгоритм быстрее?
$part = 1000;
$pause = 10; // сек.
foreach ( $items as $im )
{
/**
* Счётчик, чтобы не перегружать ресурсы сервера.
* Каждые $part элементов, делать перерыв $pause.
*/
$j ?? $j = 1;
/** Строка, чтобы знать, что что-то вообще происходит. */
echo 'Обработка элемента ', $im, PHP_EOL;
if ( $j++ % $part === 0 )
{
echo 'Ожидание ', $pause, ' сек.', PHP_EOL;
sleep( $pause );
}
$keys_match = array_keys( $items, $im );
$keys_to_del = array_slice( $keys_match, 1 );
foreach ( $keys_to_del as $key_to_del )
{
unset( $items[$key_to_del] );
}
}