php怎么删除数组中重复的元素值
php删除数组中重复值的方法:1、使用array_unique()函数,语法“array_unique(array)”。2、先用array_flip()函数反转数组的键和值,去掉重复值;然后再用array_flip()将数组反转回来。
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
php删除数组中重复的元素值
方法1:直接使用array_unique()函数
<?php $arr1 = array("a" => "green", "b" => "red", "c" => "green", "d" => "blue","e" => "red"); var_dump($arr1); $arr2 = array_unique($arr1); var_dump($arr2); ?>
输出:
array (size=5) 'a' => string 'green' (length=5) 'b' => string 'red' (length=3) 'c' => string 'green' (length=5) 'd' => string 'blue' (length=4) 'e' => string 'red' (length=3) array (size=3) 'a' => string 'green' (length=5) 'b' => string 'red' (length=3) 'd' => string 'blue' (length=4)
说明:
array_unique() 函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。
注释:被保留的数组将保持第一个数组项的键名类型。
语法
array_unique(array)
方法2:使用两次array_flip()函数
<?php header("content-type:text/html;charset=utf-8"); $arr = array("a" => "green", "b" => "red", "c" => "green", "d" => "blue","e" => "red"); // 输出原始数组 echo "原始数组 :"; var_dump($arr); // 通过使用翻转键和值移除重复值 $arr = array_flip($arr); // 通过再次翻转键和值来恢复数组元素 $arr = array_flip($arr); // 重新排序数组键 $arr = array_values($arr); // 输出更新后的数组 echo "更新数组 :"; var_dump($arr); ?>
输出:
原始数组 : array (size=5) 'a' => string 'green' (length=5) 'b' => string 'red' (length=3) 'c' => string 'green' (length=5) 'd' => string 'blue' (length=4) 'e' => string 'red' (length=3) 更新数组 : array (size=3) 0 => string 'green' (length=5) 1 => string 'red' (length=3) 2 => string 'blue' (length=4)
说明:
array_flip()是反转数组键和值的函数,它有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值,利用这个特性就可以间接实现数组的去重了。
语法
array_flip(array);
推荐学习:《PHP视频教程》