【问题标题】:PHP array performance checking key existence vs checking values existencePHP数组性能检查键是否存在与检查值是否存在
【发布时间】:2014-10-25 01:56:17
【问题描述】:

以下操作的O(n)有区别吗?

$a1 = [1=>'',2=>'', 3=>'']
isset($a1[2])

$a2 = [1,2, 3]
in_array(2, $a2)

【问题讨论】:

  • in_array 的价值观......所以......他们并不是真的意味着同样的事情。
  • 这是我的猜测...isset 更快,因为in_array() 必须查看这些值。 isset 只想知道该索引是否存在,而不管它实际包含什么。

标签: php arrays performance big-o


【解决方案1】:

isset($a1[2]) 的复杂度为 O(1)
in_array(2, $a2) 在您的情况下复杂度为 O(3),或者通常为 O(N),其中 N=count_of_the_array 元素

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    相关资源
    最近更新 更多