strpos() with multiple needles?

Nikola Obreshkov picture Nikola Obreshkov · Aug 1, 2011 · Viewed 20.8k times · Source

I am looking for a function like strpos() with two significant differences:

  1. To be able to accept multiple needles. I mean thousands of needles at ones.
  2. To search for all occurrences of the needles in the haystack and to return an array of starting positions.

Of course it has to be an efficient solution not just a loop through every needle. I have searched through this forum and there were similar questions to this one, like:

but nether of them was what I am looking for. I am using strpos just to illustrate my question better, probably something entirely different has to be used for this purpose.

I am aware of Zend_Search_Lucene and I am interested if it can be used to achieve this and how (just the general idea)?

Thanks a lot for Your help and time!

Answer

user3270784 picture user3270784 · Jan 14, 2016

try preg match for multiple

if (preg_match('/word|word2/i', $str))

Checking for multiple strpos values