需要帮助匹配PHP数组中的确切字符串

Don*_*ton 1 php arrays preg-match strpos

我有一个文本文件,其中包含项目编号(每行一个).当我们的条形码扫描仪扫描一个项目时,它会被放入这个文本文件中,如果它存在于顺序中(存储在一个数组中......只有项目编号,没有别的).

发生的事情是,如果我有两个项目编号:

C0DB-9700-W C0DB-9700-WP

如果我首先扫描项目C0DB-9700-W然后我可以扫描第二项就好了,但如果我先扫描C0DB-9700-WP,它认为我已经扫描了C0DB-9700-W,因为该项目是我已经扫描的项目的前缀.

我知道strpos只检查第一次出现.我使用以下代码:

if (strpos($file_array, $submitted ) !==FALSE) {

我切换到使用:

if (preg_match('/'.$submitted.'/', $file_array)) {

我认为通过使用preg_match我可以克服这个问题,但显然不是.我只是想让PHP检查我给它的EXACT字符串对阵数组中的项目(我从文件中获取)以查看它是否已经被扫描过.这在我脑海里并不难,但显然我在这里遗漏了一些东西.我怎样才能哄骗PHP寻找整个字符串而不是在它找到足够好的东西时放弃(或者至少它认为足够好)?

谢谢!

web*_*ave 5

只需使用in_array:

if (in_array($submitted, $file_array))
Run Code Online (Sandbox Code Playgroud)

仅供参考,您的正则表达式缺少开始/结束锚点(第二个参数需要是字符串,而不是数组):

preg_match('/^'.$submitted.'$/', $subject)
Run Code Online (Sandbox Code Playgroud)