无法删除数组中的重复项

时间:2014-07-16 15:34:06

标签: php duplicates

我有2个文件并将它们转换为数组,然后将它们合并为:

$array1  = file('http://domain.com/1.txt');
$array2  = file('http://domain.com/2.txt');
$arraysmerged = array_merge($array1, $array2);
print_r ($array1);echo '<br>';
print_r ($array2);echo '<br>';
print_r ($arraysmerged);echo '<br><br><br>';

返回:

Array ( [0] => green [1] => red [2] => green [3] => yellow ) 
Array ( [0] => orange [1] => blue ) 
Array ( [0] => green [1] => red [2] => green [3] => yellow [4] => orange [5] => blue ) 

虽然,我想删除重复项,但在这种情况下,“绿色”应该只发生一次。 我已经四处寻找并尝试了所有不同的方法,但它们都变成了相同的结果或者变成了一个阵列。目前我有这些:

$arraysnodups = array_unique($arraysmerged);
$arraysnodups2= array_values(array_unique($arraysmerged));
$arraysnodups3 = array_unique(array_merge_recursive($array1, $array2));
print_r ($arraysnodups);echo '<br>';
print_r ($arraysnodups2);echo '<br>';
print_r( $arraysnodups3);;echo '<br>';

但他们都回来了:

Array ( [0] => green [1] => red [2] => green [3] => yellow [4] => orange [5] => blue ) 
Array ( [0] => green [1] => red [2] => green [3] => yellow [4] => orange [5] => blue ) 
Array ( [0] => green [1] => red [2] => green [3] => yellow [4] => orange [5] => blue ) 

所以不删除重复...

我希望有人可以提供帮助。 提前谢谢!

2 个答案:

答案 0 :(得分:1)

可能是\n\r\n组合差异或其他空白问题。尝试:

$arraysmerged = array_merge($array1, $array2);
$arraysmerged = array_map('trim', $arraysmerged);
$arraysnodups = array_unique($arraysmerged);

答案 1 :(得分:0)

现在它有效。 上述答案(修剪)的组合+将其写入另一个文本文件,我确信在开始时没有隐藏的块字符。感谢。