PHP数组去重

萝らか妹 提交于 2020-01-11 01:46:53

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得到的是两个重复元素第一个键和值。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!