Php 数组\唯一或将值存储为数组中的键
我正在用可能包含重复项的字符串填充数组。这是一个大数组 我将每个字符串存储为数组本身的键,从而自动处理重复项是否更好 例如Php 数组\唯一或将值存储为数组中的键,php,Php,我正在用可能包含重复项的字符串填充数组。这是一个大数组 我将每个字符串存储为数组本身的键,从而自动处理重复项是否更好 例如数组['test']=true 还是将它们全部存储在数组中更有效 例如数组[]='test' 然后执行一个数组\u unique?如果将每个字符串存储为数组本身的键,则插入每个元素需要N个时间,执行时间为O(N) 如果您使用传统的insert,然后使用array_unique进行检查,它将是>O(N) 基本上,第二个方法需要更多的时间,因为您将多次而不是一次迭代数组。如果您将
数组['test']=true
还是将它们全部存储在数组中更有效
例如数组[]='test'代码>
然后执行一个数组\u unique?如果将每个字符串存储为数组本身的键,则插入每个元素需要N个时间,执行时间为O(N)
如果您使用传统的insert,然后使用array_unique进行检查,它将是>O(N)
基本上,第二个方法需要更多的时间,因为您将多次而不是一次迭代数组。如果您将每个字符串存储为数组本身的键,则插入每个元素需要N个时间,执行时间为O(N)
如果您使用传统的insert,然后使用array_unique进行检查,它将是>O(N)
基本上,第二种方法需要更多的时间,因为您将多次而不是一次迭代数组。创建一个包含不包含任何信息的键的数组是毫无意义的。所以我认为第二种选择更好。您还可以在使用第二种方法更新数组之前检查该值是否存在。但这也会增加问题的复杂性。大O表示法表示,将它们存储为存储桶(第一个示例)将使您的复杂性达到n,这与您在这种情况下可能获得的“速度”差不多。创建一个包含不包含任何信息的键的数组是毫无意义的。所以我认为第二种选择更好。您还可以在使用第二种方法更新数组之前检查该值是否存在。但这也会增加问题的复杂性。大O表示法表示,将它们存储为存储桶(第一个示例)将使您的复杂性达到n,这与您在本场景中可能得到的“速度”一样好。