2013-05-06 68 views
-2

首先感谢Dave Chen帮助我进行合并。php删除字符串中的副本

现在我遇到了一个问题。当我合并中使用此代码:

 
$string1 = " 
;1 
2 
3 
;4 
"; 

$string2 = " 
;1 
;2 
;3 
;4 
;5 
;6 
"; 

echo implode("\r\n",array_unique(array_merge(explode("\r\n",$string1),explode("\r\n",$string2)))); 

输出是; 1 2 3; 4; 2; 3; 5; 6但我需要它是; 1 2 3; 4; 5; 6

+0

你必须有列';'符号?从我的角度来看''2!= 2' – Baba 2013-05-06 01:07:55

+0

分号代表什么? – 2013-05-06 01:08:15

+0

解释''3“==”; 3“' – sectus 2013-05-06 01:09:19

回答

0

你可以试试:

echo implode(" ", crazyMerge($string1, $string2)); 

输出

;1 2 3 ;4 ;5 ;6  

福nction使用

function crazyMerge($a, $b) { 
    // Some Cleanup 
    $a = array_map("trim", explode("\r\n", $a)); 
    $b = array_map("trim", explode("\r\n", $b)); 

    $ab = array(); 
    foreach($a as $v) { 
     if (! in_array(ltrim($v, ";"), $ab) && ! in_array($v, $ab)) 
      $ab[] = $v; 
    } 
    foreach($b as $k => $v) { 
     if (! in_array(ltrim($v, ";"), $ab) && ! in_array($v, $ab)) 
      $ab[] = $v; 
    } 
    return $ab; 
} 
+0

谢谢巴巴。 =) – user2348833 2013-05-06 03:26:41