array_unique或将值存储为数组中的键

I am populating an array with strings that may contain duplicates. It's a large array.

Is it better I store each string as the key of the array itself, thus handling duplicates automatically

e.g. array['test'] = true

Or is it more efficient to store them all in the array as

e.g. array[] = 'test';

and then do an array_unique?

If you store each string as the key of the array itself it will take N time for each element to be inserted for an execution time of O(N).

If you do it with the traditional insert and then check with array_unique it would be > O(N).

Essentially it would take more time for the second method because you would be iterating the array multiple times instead of once.