什么更快,数组查找(包括数组构建)或IF堆栈?

Chr*_*oot 1 php

我想知道哪个更好:

$lookup = array( "a" => 1, "b" => 2, "c" => 3 );
return $lookup[$key];
Run Code Online (Sandbox Code Playgroud)

要么

if ( $key == "a" ) return 1
else if ( $key == "b" ) return 2
else if ( $key == "c" ) return 3
Run Code Online (Sandbox Code Playgroud)

或者只是一个不错的开关......

switch($key){
case "a": return 1;
case "b": return 2;
case "c": return 3;
}
Run Code Online (Sandbox Code Playgroud)

我总是喜欢第一种方法,因为我可以将数据与代码分开; 在这种规模上,它看起来很愚蠢,但规模更大,有数千行查找条目; PHP需要多长时间才能构建一个数组,然后每个请求只检查1或2个条目.

我认为它必须经过测试和计时,但我会说数组越大越复杂,它就越慢.

PHP应该能够比PHP代码更快地处理查找,但是首先构建数组肯定会占用大量的时间.

Mar*_*rko 6

对于具有可测量性能的任何事物(不仅仅是3个条目),查找是最快的方式.这就是哈希表的用途.