检查价值存在的最快方法

时间:2010-05-28 11:57:11

标签: php arrays

我有一个值列表,我必须检查我的输入是否存在。

最快的方法是什么?

这真的是出于对内部工作原理的好奇心,而不是任何关于过早优化的东西......

1

$x=array('v'=>'','c'=>'','w'=>);

..

..

array_key_exists($input,$x);

2

$x=array('v','c','w');

..

..

in_array($input,$x);

2 个答案:

答案 0 :(得分:2)

isset($x[$input])如果适合您的需要,通常会胜过两者。

在问题中的两种方法中,array_key_existsin_array做的工作要少,所以如果你只需要在那两种方法之间做出选择,那么array_key_exists就是它。

旁白:您对“内部”有任何具体问题吗?

答案 1 :(得分:0)

根据我的经验,array_key_exists在99%的时间内更快,特别是在数组大小增加时。

话虽如此,isset更快,因为它执行哈希查找与数组值搜索,但isset将在空值上返回false,如示例数组中所示。