|
|
|
[PHP] รบกวนถาม การรวม String เฉพาะตัวที่เหมือนกันตัวเดียวส่วนที่ไม่เหมือนกันเอาหมด อะครับ |
|
|
|
|
|
|
|
Code (PHP)
<style type='text/css'>
.hl{
/*background:yellow;*/
text-decoration:underline;
}
</style>
<?php
$str1 = "ABC";
$str2 = "ACD";
$obj =new MergeString;
#มีขีดเส้นใต้ตัวที่ซ้ำ
$newString=$obj->merge_highlight($str1,$str2);
echo "<BR>#มีขีดเส้นใต้ตัวที่ซ้ำ<BR>";
echo $newString;
#ไม่มีขีดเส้นใต้ตัวที่ซ้ำ
$newString=$obj->merge($str1,$str2);
echo "<BR>#ไม่มีขีดเส้นใต้ตัวที่ซ้ำ<BR>";
echo $newString;
class MergeString{
public function merge($str1,$str2){
$arr=self::mergeArray($str1,$str2);
$bak='';
$newStr='';
foreach($arr as $a){
if($bak!=$a){
$bak=$a;
$newStr.=$a;
}
}
return $newStr;
}
public function merge_highlight($str1,$str2){
$arr=self::mergeArray($str1,$str2);
$bak='';
$bak2='';
$newStr='';
foreach($arr as $a){
if($bak!=$a){
$bak=$a;
$newStr.=$a;
}else{
if($bak2!=$a){
$bak2=$a;
$newStr=substr($newStr,0,strlen($newStr)-1);
$newStr.="<span class='hl'>$a</span>";
}
}
}
return $newStr;
}
public static function mergeArray($str1,$str2){
$arr=array_merge(self::toArray($str1),self::toArray($str2));
sort($arr);
return $arr;
}
public static function toArray($str){
return preg_split('//',$str, -1, PREG_SPLIT_NO_EMPTY);
}
}
?>
ผลลัพธ์
Code
#มีขีดเส้นใต้ตัวที่ซ้ำ
ABCD
#ไม่มีขีดเส้นใต้ตัวที่ซ้ำ
ABCD
|
|
|
|
|
Date :
2010-01-31 09:28:45 |
By :
xbeginner01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+1 ให้เลยครับ หุๆ
ขอบคุณมากเลย
|
|
|
|
|
Date :
2010-01-31 18:17:56 |
By :
DarkEvil |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|