在PHP中搜索单个字符串中的不同字符串数组

0 php regex arrays search

我有一个字符串数组,我想尝试匹配到普通字符串的末尾.我不确定在PHP中执行此操作的最佳方法.

这是我想要做的事情:

例:

输入:abcde

搜索数组:er,wr,de

匹配:de

我的第一个想法是编写一个遍历数组的循环,并通过在每个字符串的末尾添加"\ b"来制作正则表达式,然后检查它是否在输入字符串中找到.虽然这可行,但循环整个数组似乎效率低下.我被告知正则表达式在PHP中很慢,并且不想实现会让我走错路的东西.

有没有更好的方法来查看我的数组中的一个字符串是否出现在输入字符串的末尾?

preg_filter()函数看起来可能会完成这项工作,但是对于PHP 5.3+而且我仍然坚持5.2.11稳定.

Ada*_*ght 5

对于这么简单的事情,你不需要正则表达式.您可以循环遍历数组,并使用strpos查看索引是否为长度(输入) - 长度(测试).如果搜索数组中的每个条目始终具有恒定长度,您还可以通过从输入中删除结尾,然后将其与数组中的每个项目进行比较来加快速度.

您无法避免遍历整个数组,因为在最糟糕的一般情况下,匹配的项目将位于数组的末尾.但是,除非阵列很大,否则我不会太担心性能 - 它会比你想象的要快得多.