php 字符串比较,取不同

比如 字符串 $a 和 $b
比较他们是否一样? 如果不一样 就输出 不一样的地方
这两个字符串长度不一样的,

也或者只输一样的地方

例子如下:

$a="abcde12";
$b="abcdf6";
echo "<pre>";
var_dump(diffStr($a,$b));   
echo "</pre>";
/*
*比较字符串不同的字符
*@参数:$str1:第一个字符串,$str2:第二个字符串
*@返回值:不同字符串的数组,
*/
function diffStr($str1,$str2){
    $sArr1 = str_split($str1);   
    $sArr2 = str_split($str2);   
     
    $num1  = count($sArr1);
    $num2  = count($sArr2);
     
    $aNew  = array();
         
    if($num1 > $num2){
        foreach($sArr1 as $k=>$val){
            if($num2 > $k && $val != $sArr2[$k]){
                $aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
            }elseif($num2 <= $k){             
                $aNew[] = array("s1"=>$val);
            }  
        }  
    }elseif($num1 < $num2){
        foreach($sArr2 as $k=>$val){
            if($num1 > $k && $val != $sArr1[$k]){
                $aNew[] = array('s1'=>$sArr1[$k],'s2'=>$val);
            }elseif($num1 <= $k){
                $aNew[] = array("s2"=>$val);  
            }  
        }
    }elseif($num1 == $num2){
        foreach($sArr1 as $k=>$val){
            if($val != $sArr2[$k]){              
                $aNew[] = array('s1'=>$val,'s2'=>$sArr2[$k]);
            }  
        }  
    }
     
    return $aNew;
}

温馨提示:答案为网友推荐,仅供参考
相似回答