我有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 )
所以不删除重复...
我希望有人可以提供帮助。 提前谢谢!
答案 0 :(得分:1)
可能是\n
或\r\n
组合差异或其他空白问题。尝试:
$arraysmerged = array_merge($array1, $array2);
$arraysmerged = array_map('trim', $arraysmerged);
$arraysnodups = array_unique($arraysmerged);
答案 1 :(得分:0)
现在它有效。 上述答案(修剪)的组合+将其写入另一个文本文件,我确信在开始时没有隐藏的块字符。感谢。