Эффективность поиска массива и поиск в тексте … Что лучше?

У меня есть список (integer) ID, который я храню как текст, например

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

теперь я работаю с PHP, я хочу проверить, существует ли уже определенный идентификатор в этом ТЕКСТе, у меня есть функция explode , которая может дать мне массив чисел , а затем я могу использовать функцию in_array , иначе я могу просто использовать функцию strpos найти в тексте .

так какой из них будет более эффективным для вас?

Большое спасибо за то, что нашли время, чтобы прочитать это.

Solutions Collecting From Web of "Эффективность поиска массива и поиск в тексте … Что лучше?"

Если все, что вам нужно сделать, это найти один идентификатор, то strpos() будет более эффективным, потому что все, что ему нужно сделать, это найти вхождение id; , тогда как explode() будет делать гораздо больше, не говоря уже о дорогостоящем вызове in_array() .

strpos() довольно быстро. Однако, если вы комбинируете array_flip explode() и array_flip , вы получаете массив, где все ключи являются вашими идентификаторами, и вы можете просто использовать isset($keys[$id]) . Это будет быстрее, так как это прямой поиск в хеш-таблице, но explode + array_flip являются дорогостоящими, так что это стоит того, если вы делаете много поисков в одних и тех же данных во время одного запроса.