dsai1991
2011-07-24 15:54
浏览 625
已采纳

如何检查两个字符串是否包含相同的字母?

$textone = "pate"; //$_GET
$texttwo = "tape";
$texttre = "tapp";

if ($textone ??? $texttwo) {
echo "The two strings contain the same letters";
}
if ($textone ??? $texttre) {
echo "The two strings NOT contain the same letters";
}

What if statement am I looking for?

图片转代码服务由CSDN问答提供 功能建议

  $ textone =“pate”;  // $ _ GET 
 $ texttwo =“tape”; 
 $ texttre =“tapp”; 
 
if($ textone ??? $ texttwo){
echo“这两个字符串包含相同的字母”; 
  } 
if($ textone ??? $ texttre){
echo“这两个字符串不包含相同的字母”; 
} 
   
 
 

if 语句我在找?

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • dongzhu7329 2011-07-24 15:59
    已采纳

    I suppose a solution could be to, considering the two following variables :

    $textone = "pate";
    $texttwo = "tape";
    


    1. First, split the strings, to get two arrays of letters :

    $arr1 = preg_split('//', $textone, -1, PREG_SPLIT_NO_EMPTY);
    $arr2 = preg_split('//', $texttwo, -1, PREG_SPLIT_NO_EMPTY);
    

    Note that, as pointed out by @Mike in his comment, instead of using preg_split() like I first did, for such a situation, one would be better off using str_split() :

    $arr1 = str_split($textone);
    $arr2 = str_split($texttwo);
    


    2. Then, sort those array, so the letters are in alphabetical order :

    sort($arr1);
    sort($arr2);
    


    3. After that, implode the arrays, to create words where all letters are in alphabetical order :

    $text1Sorted = implode('', $arr1);
    $text2Sorted = implode('', $arr2);
    


    4. And, finally, compare those two words :

    if ($text1Sorted == $text2Sorted) {
        echo "$text1Sorted == $text2Sorted";
    }
    else {
        echo "$text1Sorted != $text2Sorted";
    }
    



    Turning this idea into a comparison function would give you the following portion of code :

    function compare($textone, $texttwo) {
        $arr1 = str_split($textone);
        $arr2 = str_split($texttwo);
    
        sort($arr1);
        sort($arr2);
    
        $text1Sorted = implode('', $arr1);
        $text2Sorted = implode('', $arr2);
    
        if ($text1Sorted == $text2Sorted) {
            echo "$text1Sorted == $text2Sorted<br />";
        }
        else {
            echo "$text1Sorted != $text2Sorted<br />";
        }
    }
    


    And calling that function on your two words :

    compare("pate", "tape");
    compare("pate", "tapp");
    

    Would get you the following result :

    aept == aept
    aept != appt
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • dounabi6295 2011-07-24 15:56

    use === and !==

    if ($textone === $texttwo) {
        echo "The two strings contain the same letters";
    }else{
        echo "The two strings NOT contain the same letters";
    }
    

    or

    if ($textone === $texttwo) {
        echo "The two strings contain the same letters";
    }
    
    if ($textone !== $texttwo) {
        echo "The two strings NOT contain the same letters";
    }
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题