首页  >  问答  >  正文

检查 PHP 数组中是否存在某个键的更快、更有效的方法是什么?

考虑这两个例子...

$key = 'jim';

// example 1
if (isset($array[$key])) {
    // ...
}

// example 2    
if (array_key_exists($key, $array)) {
    // ...
}

我有兴趣知道这两者是否更好。我一直使用第一个示例,但在本网站上看到很多人使用第二个示例。

那么,哪个更好呢?快点?意图更明确?

P粉512363233P粉512363233390 天前536

全部回复(2)我来回复

  • P粉969666670

    P粉9696666702023-10-17 00:59:09

    如果您对我最近完成的一些测试感兴趣:

    https://stackoverflow.com/a/21759158/520857

    摘要:

    | Method Name                              | Run time             | Difference
    =========================================================================================
    | NonExistant::noCheckingTest()            | 0.86004090309143     | +18491.315775911%
    | NonExistant::emptyTest()                 | 0.0046701431274414   | +0.95346080503016%
    | NonExistant::isnullTest()                | 0.88424181938171     | +19014.461681183%
    | NonExistant::issetTest()                 | 0.0046260356903076   | Fastest
    | NonExistant::arrayKeyExistsTest()        | 1.9001779556274      | +209.73055713%

    回复
    0
  • P粉713866425

    P粉7138664252023-10-17 00:41:48

    isset() 速度更快,但与 array_key_exists() 不同。

    array_key_exists() 纯粹检查键是否存在,即使值为 NULL

    鉴于 如果键存在且值为 NULLisset() 将返回 false

    回复
    0
  • 取消回复