⑴ php 字元串比較,取不同
例子如下:
$a="abcde12";
$b="abcdf6";
echo"<pre>";
var_mp(diffStr($a,$b));
echo"</pre>";
/*
*比較字元串不同的字元
*@參數:$str1:第一個字元串,$str2:第二個字元串
*@返回值:不同字元串的數組,
*/
functiondiffStr($str1,$str2){
$sArr1=str_split($str1);
$sArr2=str_split($str2);
$num1=count($sArr1);
$num2=count($sArr2);
$aNew=array();
if($num1>$num2){
foreach($sArr1as$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($sArr2as$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($sArr1as$k=>$val){
if($val!=$sArr2[$k]){
$aNew[]=array('s1'=>$val,'s2'=>$sArr2[$k]);
}
}
}
return$aNew;
}
⑵ php 如何比較兩個中文字元串是否相等
function
arr_split_zh($tempaddtext){
$cind
=
0;
$arr_cont=array();
for($i=0;$i<strlen($tempaddtext);$i++)
{
if(strlen(substr($tempaddtext,$cind,1))
>
0){
if(ord(substr($tempaddtext,$cind,1))
<
0xA1
){
//如果為英文則取1個
位元組
array_push($arr_cont,substr($tempaddtext,$cind,1));
$
cin
d++;
}else{
array_push($arr_cont,substr($tempaddtext,$cind,2));
$cind+=2;
}
}
}
return
$arr_cont;
}
$str1="中文字元串1";
$str2="中文字元串2";
$Arr_Str1
=
arr_split_zh($str1);
$Arr_Str2
=
arr_split_zh($str2);
function
Str_Is_Equal($mystr1,$mystr2){
$result
=
0;
for($i=0;$mystr1[$i];$i++){
if($mystr1[$i]
!=$mystr2[$i]){
$result
=
0;
break;
}
$result
=
1;
}
return
$result;
}
看看行不?我這邊Apache環境有點問題,所以沒有測試
⑶ php 多個字元串比較是否相同
java中判斷字元串是否相等有兩種方法:1、用「==」運算符,該運算符表示指向字元串的引用是否相同,比如:
string
a="abc";string
b="abc",那麼a==b將返回true。這是因為在java中字元串的值是不可改變的,相同的字元串在內存中只會存一份,所以a和b指向的是同一個對象;再比如:string
a=new
string("abc");
string
b=new
string("abc");那麼a==b將返回false,因為a和b指向不同的對象。2、用equals方法,該方法比較的是字元串的內容是否相同,比如:string
a=new
string("abc");
string
b=new
string("abc");
a.equals(b);將返回true。所以通常情況下,為了避免出現上述問題,判斷字元串是否相等使用equals方法。
⑷ php 怎麼實現文件的對比
可以按照word遍歷兩個字元串,逐個對比,當發現不一樣的字元時開始標記差異的開始位置,然後在一個串的剩餘字元中查找當前串後面幾個字元的字串,如果查找到則標記出一個diff結束。有可能會發現多種diff結果,可以再計算diff字元長度最小的組合。