我有一个(整数)ID列表,我将其存储为文本,如
23;45;67;12;332;783;123;33;15;87;41;422;88;58;
现在我正在使用PHP,我想检查该TEXT中是否已经存在特定的ID,我有explore函数,它可以给我一个数字数组,然后我可以使用in_array功能,或者我可以只使用strpos在TEXT中查找。
那么,根据您的判断,哪一个更有效?
非常感谢您抽出时间阅读本文。
如果您只需要查找一个ID,那么strpos()
将更高效,因为它所要做的就是查找id;
的出现,而explode()
将做更多的工作,更不用说对in_array()
的昂贵调用了。
strpos()
速度相当快。但是,如果将explode()
和array_flip
组合在一起,则会得到一个数组,其中所有的键都是您的id,并且您可以只使用isset($keys[$id])
。这会更快,因为这是在哈希表中的直接查找,但爆炸+数组翻转的成本很高,所以只有在一个请求期间对同一数据进行多次查找时才值得。