查找字符串中的常见字符

Sum*_*nha 0 php string compare

我正在尝试使用此方法来查找两个字符串中的常用字符,即$ a和$ r,但第一个字符未打印.此外,$已经收集了常用字符,并防止它们被多次打印(我需要每个字符只打印一次),但它没有这样做.请告诉我我正在犯的错误.

<?php
$a="BNJUBCI CBDIDIBO";
$r="SBKJOJLBOU";
$already="";
for($i=0;$i<strlen($r);$i++)
{
   if (stripos($a,$r[$i])!=FALSE)
   {
        if (stripos($already,$r[$i])==FALSE)
        {
            $already=$already.$r[$i];
            echo "already=".$already."<br>";
            echo $r[$i]."<br>";
        }
   }
}
?>
Run Code Online (Sandbox Code Playgroud)

Nie*_*sol 5

!==FALSE而不是!=FALSE.问题是,stripos如果针位于大海捞针的开头,则返回0,0表示假.通过使用!==你强迫它确保结果实际上是假的,而不仅仅是0.

这实际上列在文档中.这里的"RTM"可能是合适的.

警告
此函数可能返回布尔值FALSE,但也可能返回非布尔值,其值为FALSE.有关更多信息,请阅读有关布尔值的部分.使用===运算符测试此函数的返回值.