Home> php教程> php手册> body text

PHP函数array_flip()在重复数组元素删除中的作用

WBOY
Release: 2016-06-13 11:06:51
Original
1226 people have browsed it

我们都知道,PHP函数array_flip()格式:

  1. array array_flip ( array trans )
    //array_flip -- 交换数组中的键和值
Copy after login

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

方法如下:

  1. $arr = array(…………) ;//假设有一万个元素的数组,里面有重复的元素。
  2. $arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。
Copy after login

究竟是怎么回事呢?来看下array_flip()的作用:PHP函数array_flip()用于将一个数组的每个元素的键和值交换,如:

  1. $arr1 = array ("age" => 30, "name" => "php自学网");
  2. $arr2 = array_flip($arr1); //$arr2 就是 array(30 => "age", "php自学网" => "name");
Copy after login

在PHP的数组中,允许不同的元素可以取同一个值,但不允许同一个键名被不同的元素使用,如:

  1. $arr1 = array ("age" => 30, "name" => "php自学网", "age" => 20); "age" => 20将会取代"age" => 30
  2. $arr1 = array ("name" => "php自学网", "age" => 45);
Copy after login

这里 $arr1与$arr2 是相等的。

于是,我们便可以知道,为什么 array_flip(array_flip($arr)) 可以删除数组中重复的元素了。首先,$arr里的值会变成键名,因为值是有重复的,变成键名之后这些重复的值便成了重复的键名,PHP引擎将重复的键名删除,只保留最后一个。如:

  1. $arr1 = array ("age" => 30, "name" => "php自学网", "age" => 20);
  2. $arr1 = array_flip($arr1); //$arr1 变成了 array("php自学网" => "name", 20 => "age");
  3. //再把 $arr1 的键名与值还复:
  4. $arr1 = array_flip($arr1);
Copy after login

上面PHP函数array_flip()的代码写得简洁一些就是:

  1. $arr1 = array_flip(array_flip($arr1));
Copy after login


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 admin@php.cn
Popular Recommendations
    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!