搜索数组的效率与文本搜索....哪个更好?

时间:2011-06-12 22:27:59

标签: php arrays search text performance

我有一个(整数)ID列表,我将其存储为文本,如

23;45;67;12;332;783;123;33;15;87;41;422;88;58;

现在我正在使用PHP,我想检查该TEXT中是否已存在特定ID,我有爆炸功能,这可以给我一个数字数组,然后我可以使用 in_array 功能,或者我可以使用 strpos 功能在文本中找到

那么哪一个更有效率来支持你?

非常感谢您花时间阅读本文。

2 个答案:

答案 0 :(得分:4)

如果你要做的只是查找一个ID,那么strpos()会更有效率,因为它所要做的就是找到id;,而explode()将会做更多的事情,更不用说对in_array()的代价高昂了。

答案 1 :(得分:3)

strpos()非常快。但是,如果您合并explode()array_flip,则会得到一个数组,其中所有键都是您的ID,您可以使用isset($keys[$id])。这会更快,因为它是在哈希表中的直接查找,但是爆炸+ array_flip是昂贵的,所以如果你在一个请求期间在相同的数据中进行许多查找,那么它是值得的。