我有一个(整数)ID列表,我将其存储为文本,如
23;45;67;12;332;783;123;33;15;87;41;422;88;58;
现在我正在使用PHP,我想检查该TEXT中是否已存在特定ID,我有爆炸功能,这可以给我一个数字数组,然后我可以使用 in_array 功能,或者我可以使用 strpos 功能在文本中找到。
那么哪一个更有效率来支持你?
非常感谢您花时间阅读本文。
答案 0 :(得分:4)
如果你要做的只是查找一个ID,那么strpos()
会更有效率,因为它所要做的就是找到id;
,而explode()
将会做更多的事情,更不用说对in_array()
的代价高昂了。
答案 1 :(得分:3)
strpos()
非常快。但是,如果您合并explode()
和array_flip
,则会得到一个数组,其中所有键都是您的ID,您可以使用isset($keys[$id])
。这会更快,因为它是在哈希表中的直接查找,但是爆炸+ array_flip是昂贵的,所以如果你在一个请求期间在相同的数据中进行许多查找,那么它是值得的。