在php中,数组是一项十分常用的数据类型,而有时候我们需要对数组进行去重操作以便满足需求。那么,在php中如何移除重复数组呢?
一、PHP数组去重的函数
PHP提供了两个函数可以用来实现数组去重,分别是array_unique()和array_diff_key()。
array_unique()函数
array_unique()函数可以去除数组中重复的值,返回一个新数组。
示例代码:
立即学习“PHP免费学习笔记(深入)”;
$arr = array("apple", "banana", "cherry", "cherry", "banana");$arr = array_unique($arr);print_r($arr);
登录后复制
输出结果:
Array( [0] => apple [1] => banana [2] => cherry)
登录后复制
可见,array_unique()函数成功去掉了原数组中的重复元素。
array_diff_key()函数
array_diff_key()函数可以将两个数组做比较,返回两个数组差异部分的键名。
示例代码:
立即学习“PHP免费学习笔记(深入)”;
$array1 = array("a" => "red", "b" => "green", "c" => "blue");$array2 = array("a" => "red", "b" => "green", "d" => "yellow");$result = array_diff_key($array1, $array2);print_r($result);
登录后复制
输出结果:
Array( [c] => blue)
登录后复制
在例子中,array_diff_key()函数筛选出了$array1中与$array2不同的部分,返回为一个新数组。
二、手动实现数组去重
除了使用PHP函数外,我们还可以手动实现数组去重。
方法一
使用for循环和if语句对数组进行遍历,判断重复元素并将其移除。
示例代码:
立即学习“PHP免费学习笔记(深入)”;
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);$new_arr = array();for ($i = 0; $i < count($arr); $i++) { if (!in_array($arr[$i], $new_arr)) { $new_arr[] = $arr[$i]; }}print_r($new_arr);
登录后复制
输出结果:
Array( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9)
登录后复制登录后复制
in_array()函数判断原数组中的元素是否已经出现在新数组中,若没有则将其添加到新数组中。
方法二
使用array_flip()函数对数组进行翻转,去掉重复键值对后使用array_flip()函数将数组翻转回来。
示例代码:
立即学习“PHP免费学习笔记(深入)”;
$arr = array(1, 2, 5, 2, 1, 6, 7, 8, 7, 9);$new_arr = array_flip(array_flip($arr));print_r($new_arr);
登录后复制
输出结果:
Array( [0] => 1 [1] => 2 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9)
登录后复制登录后复制
这个方法不需要使用循环,只需用array_flip()函数两次即可。
三、总结
以上就是PHP移除重复数组的几种方法,可以根据具体情况选择相应的方法实现。array_unique()函数和array_diff_key()函数是PHP自带的函数,具有比较高的效率,而手动实现虽然代码量较多但可根据实际情况进行灵活调整和优化。
以上就是php怎么移除重复数组的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2509429.html