php关于两个字符串的比较!!

2025-05-08 10:16:54
推荐回答(2个)
回答1:

刚写,例子如下:

$a="abcde12";
$b="abcdf6";
echo "
";
var_dump(diffStr($a,$b));   
echo "
";
/*
*比较字符串不同的字符
*@参数:$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;
}

回答2:

方法如下:
$a="abcde12";
$b="abcdf6";
echo "

";
var_dump(diffStr($a,$b));
echo "
";
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;
}