PHP合并两个数组后如何移除全部重复元素得到仅出现一次的数组
PHP合并数组后仅保留单次出现元素的实现方法
你之前使用的去重方法(大概率是array_unique())只会保留重复元素的单个副本,不会完全剔除所有出现过多次的元素,要实现你的需求可以按以下步骤操作:
完整实现代码
// 定义原始数组 $array1 = array("2", "3"); $array2 = array("3", "5", "4", "7", "8", "2", "10"); // 合并两个数组 $mergedArr = array_merge($array1, $array2); // 统计每个元素的出现次数 $counts = array_count_values($mergedArr); // 过滤仅保留出现次数为1的元素 $filteredArr = array_filter($mergedArr, function($value) use ($counts) { return $counts[$value] === 1; }); // 重置数组索引(可选,若需要连续的数字索引可执行这一步) $result = array_values($filteredArr); // 输出结果 print_r($result);
输出结果
Array ( [0] => 5 [1] => 4 [2] => 7 [3] => 8 [4] => 10 )
逻辑说明
- 用
array_merge()完成两个数组的合并,和你原有操作一致 - 用
array_count_values()统计合并后数组中每个元素的出现频次,返回以元素值为键、出现次数为值的关联数组 - 用
array_filter()遍历合并后的数组,仅保留出现次数等于1的元素 - 若需要连续的数字索引,调用
array_values()重置索引即可
内容的提问来源于stack exchange,提问作者Jinal Gajera
相关产品推荐
相关产品推荐

