鍍金池/ 問(wèn)答/PHP/ 如何從數(shù)組中匹配字符串是否一致/存在

如何從數(shù)組中匹配字符串是否一致/存在

如題,用自己的想法嘗試過(guò),匹配不到

$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');

目標(biāo)返回 true

實(shí)際返回 false

回答
編輯回答
別瞎鬧

我覺(jué)得 雪之祈舞 的方法很好
不過(guò)對(duì)于你的代碼,為什么匹配不到,我想原因在這里:

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

這句判斷有問(wèn)題,!= 應(yīng)該換成 !==
因?yàn)?code>strpos函數(shù)用于查找字符串,如果查找到了則返回字符串出現(xiàn)的位置,當(dāng) CotentArr[$i] 的值是 Players 時(shí),它在 $content 中出現(xiàn)的位置為0,經(jīng)過(guò) != 判斷不會(huì)出現(xiàn)你期待的結(jié)果(!= 類型轉(zhuǎn)換,出現(xiàn)的位置為0,則為false)

題外話:
不建議你在 for(表達(dá)式1;表達(dá)式2;表達(dá)式3) 中的 表達(dá)式2 中使用count函數(shù),因?yàn)檫@3個(gè)表達(dá)式執(zhí)行的順序是:
表達(dá)式1 -> 表達(dá)式2 -> 表達(dá)式3 -> 表達(dá)式2 -> 表達(dá)式3 -> 表達(dá)式2.... 你使用的count函數(shù)會(huì)進(jìn)行多次計(jì)算數(shù)組中的元素個(gè)數(shù)...,當(dāng)然,PHP是很快的,你也可以不在乎

2017年8月16日 04:45
編輯回答
巴扎嘿

無(wú)奈~~~沒(méi)人用in_array()

2017年5月13日 23:48
編輯回答
練命
$rr = substr_count($CotentCate,$Str);
echo $rr;
2017年8月22日 07:00