php一维数组去重
常用的方法有两种array_unqiue()和array_flip()
1.array_unique() 接受 array 作为输入并返回没有重复值的新数组。第一个单元将被保留。
2.array_flip()是反转数组键和值的函数,他有个特性就是如果数组中有二个值是一样的,那么反转后会保留最后一个键和值.利用这个特性我们用他来间接的实现数组的去重。
具体实现方法:
<?php
//array_unique()方法
$testArray=[
'test'=>'1',
'test1'=>1,
'test2'=>'testname',
'test3'=>'a',
'test4'=>'a',
'test'=>'b'
];
echo "原数组打印:";
print_r($testArray);
echo "<br>";
$testArray1=array_unique($testArray);
echo "array_unique处理后:";
print_r($testArray1);
echo "<br>";
//array_flip()方法
$testArray2=array_flip($testArray);
echo "array_flip处理后:";
print_r($testArray2);
echo "<br>";
$testArray3=array_flip($testArray2);
echo "再次array_flip处理后";
print_r($testArray3);
实现效果
原数组打印:Array ( [test] => b [test1] => 1 [test2] => testname [test3] => a [test4] => a )
array_unique处理后:Array ( [test] => b [test1] => 1 [test2] => testname [test3] => a )
array_flip处理后:Array ( [b] => test [1] => test1 [testname] => test2 [a] => test4 )
再次array_flip处理后Array ( [test] => b [test1] => 1 [test2] => testname [test4] => a )
查看源码
原数组打印:Array
(
[test] => b
[test1] => 1
[test2] => testname
[test3] => a
[test4] => a
)
array_unique处理后:Array
(
[test] => b
[test1] => 1
[test2] => testname
[test3] => a
)
array_flip处理后:Array
(
[b] => test
[1] => test1
[testname] => test2
[a] => test4
)
再次array_flip处理后Array
(
[test] => b
[test1] => 1
[test2] => testname
[test4] => a
)
总结:
通过上边的比较可以看出用array_flip得到的是重复元素最后的键和值,用array_unique得到的是两个重复元素第一个键和值。
来源:CSDN
作者:Learn 80
链接:https://blog.csdn.net/qq_45451052/article/details/103835475