php用array_flip()函数删除数组中的重复元素

黄舟
Release: 2023-03-03 19:08:01
Original
1366 people have browsed it

php中,删除数组中重复元素有一个可用的函数,那就是array_unique(), 但是它并不是一个最高效的方法,使用array_flip()函数将比array_unique()在速度上高出五倍左右。 

函数格式: 
array array_flip ( array trans ) //array_flip -- 交换数组中的键和值 

方法如下: 
$arr = array(…………) ;//假设有一万个元素的数组,里面有重复的元素。 
$arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。 
究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如: 
$arr1 = array ("age" => 30, "name" => "php自学网"); 
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => "age", "php自学网" => "name"); 
在PHP的数组中,允许不同的元素可以取同一个值,但不允许同一个键名被不同的元素使用,如: 
$arr1 = array ("age" => 30, "name" => "php自学网", "age" => 20); "age" => 20将会取代"age" => 30 
$arr1 = array ("name" => "php自学网", "age" => 45); 
这里 $arr1与$arr2 是相等的。 
于是,我们便可以知道,为什么 array_flip(array_flip($arr)) 可以删除数组中重复的元素了。首先,$arr里的值会变成键名,因为值是有重复的,变成键名之后这些重复的值便成了重复的键名,PHP引擎将重复的键名删除,只保留最后一个。如: 
$arr1 = array ("age" => 30, "name" => "php自学网", "age" => 20); 
$arr1 = array_flip($arr1); //$arr1 变成了 array("php自学网" => "name", 20 => "age"); 
//再把 $arr1 的键名与值还复: 
$arr1 = array_flip($arr1); 
上面的代码写得简洁一些就是: $arr1 = array_flip(array_flip($arr1));  

 以上就是php用array_flip()函数删除数组中的重复元素的内容,更多相关内容请关注PHP中文网(www.php.cn)! 


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact [email protected]
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!