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

如题,用自己的想法尝试过,匹配不到

$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



UYOU
浏览 638回答 1
1回答

慕的地8271018

我觉得&nbsp;雪之祈舞&nbsp;的方法很好不过对于你的代码,为什么匹配不到,我想原因在这里:if&nbsp;(strpos($content,&nbsp;trim($CotentArr[$i]))&nbsp;!=&nbsp;false)这句判断有问题,!=&nbsp;应该换成&nbsp;!==因为strpos函数用于查找字符串,如果查找到了则返回字符串出现的位置,当&nbsp;CotentArr[$i]的值是&nbsp;Players&nbsp;时,它在&nbsp;$content&nbsp;中出现的位置为0,经过&nbsp;!=&nbsp;判断不会出现你期待的结果(!= 类型转换,出现的位置为0,则为false)题外话:不建议你在&nbsp;for(表达式1;表达式2;表达式3)&nbsp;中的 表达式2 中使用count函数,因为这3个表达式执行的顺序是:表达式1 -> 表达式2 -> 表达式3 -> 表达式2 -> 表达式3 -> 表达式2....&nbsp;你使用的count函数会进行多次计算数组中的元素个数...,当然,PHP是很快的,你也可以不在乎
打开App,查看更多内容
随时随地看视频慕课网APP