为了账号安全,请及时绑定邮箱和手机立即绑定

如何从数组中匹配字符串是否一致/存在

如何从数组中匹配字符串是否一致/存在

PHP
UYOU 2018-09-24 20:02:24
如题,用自己的想法尝试过,匹配不到$Str = 'Players'; $CotentCate = 'UserOS|UserIP|UserLang|UserLocation|Players|JavaVersion|MCVersion|ServerCore|ServerSystem'; $content = trim($Str);         $CotentArr = explode("|", $CotentCate);        for ($i = 0; $i < count($CotentArr); $i++) {            if ($CotentArr[$i] == "") {                continue;               }            if (strpos($content, trim($CotentArr[$i])) != false) {                die('true');             }         }        die('false');目标返回 true实际返回 false
查看完整描述

1 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

我觉得 雪之祈舞 的方法很好
不过对于你的代码,为什么匹配不到,我想原因在这里:

if (strpos($content, trim($CotentArr[$i])) != false)

这句判断有问题,!= 应该换成 !==
因为strpos函数用于查找字符串,如果查找到了则返回字符串出现的位置,当 CotentArr[$i]的值是 Players 时,它在 $content 中出现的位置为0,经过 != 判断不会出现你期待的结果(!= 类型转换,出现的位置为0,则为false)

题外话:
不建议你在 for(表达式1;表达式2;表达式3) 中的 表达式2 中使用count函数,因为这3个表达式执行的顺序是:
表达式1 -> 表达式2 -> 表达式3 -> 表达式2 -> 表达式3 -> 表达式2.... 你使用的count函数会进行多次计算数组中的元素个数...,当然,PHP是很快的,你也可以不在乎


查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 637 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信