php array_flip() 删除数组重复元素

方法如下:
$arr = array(…………) ;//假设有一万个元素的数组,里面有重复的元素。
$arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。

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

上面的代码写得简洁一些就是: $arr1 = array_flip(array_flip($arr1));

(0)

相关推荐

  • php递归调用删除数组空值元素的方法

    本文实例讲述了php递归调用删除数组空值元素的方法.分享给大家供大家参考.具体如下: 该函数可以删除数组里的所有空值元素,包含空字符串,空的数组等等. function array_remove_empty($arr){ $narr = array(); while(list($key, $val) = each($arr)){ if (is_array($val)){ $val = array_remove_empty($val); // does the result array conta

  • PHP实现删除多重数组对象属性并重新赋值的方法

    本文实例讲述了PHP实现删除多重数组对象属性并重新赋值的方法.分享给大家供大家参考,具体如下: 实例:sphinx搜索出来的结果,要去掉某个属性值: $cl = new SphinxClient (); $query = $cl->Query ( $keyword, $index ); 方法一,直接删除属性: foreach ( $query['matches'] as $k => $val ) { unset($query['matches'][$k]["attrs"][

  • PHP从数组中删除元素的四种方法实例

    茴香豆的"茴"字有四种写法,PHP从数组中删除元素也有四种方法 ^_^. 删除一个元素,且保持原有索引不变 使用 unset 函数,示例如下: <?php $array = array(0 => "a", 1 => "b", 2 => "c"); unset($array[1]); //↑ 你想删除的key ?> 输出: Array (     [0] => a     [2] =>

  • php中删除数组的第一个元素和最后一个元素的函数

    对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作. (1)使用 array_pop 删除数组的最后一个元素,例如: $user=array('apple','banana','orange'); $result=array_pop($user); print_r($result); print_r($user); 结果将是: orange array(

  • PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)

    本文实例讲述了PHP查询并删除数据库多列重复数据的方法.分享给大家供大家参考,具体如下: <?php $con = mysql_connect("localhost","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } $db_selected = mysql_select_db("test_db", $con); if (!$db

  • php删除数组中重复元素的方法

    几种php删除数组元素方法在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法. 方法一.完整删除重复数组实例-----删除数组中的一个元素 function array_remove_value(&$arr, $var){ foreach ($arr as $key => $value) { if (is_array($value)) { array_remove_valu

  • php使用unset()删除数组中某个单元(键)的方法

    本文实例讲述了php使用unset()删除数组中某个单元(键)的方法.分享给大家供大家参考.具体分析如下: unset既可以删除变量,也可以删除数组中某个单元.但要注意的是,数组不会重建索引. 实例如下: <?php $arr = array("朝阳区","海淀区","西城区","东城区","丰台区"); unset($arr[3]); echo "<pre>"; pr

  • PHP删除二维数组中相同元素及数组重复值的方法示例

    本文实例讲述了PHP删除二维数组中相同元素及数组重复值的方法.分享给大家供大家参考,具体如下: function assoc_title($arr, $key) { $tmp_arr = array(); foreach ($arr as $k => $v) { if (in_array($v[$key], $tmp_arr)) { unset($arr[$k]); } else { $tmp_arr[] = $v[$key]; } } return $arr; }//assoc_title e

  • PHP删除数组中的特定元素的代码

    比如下面的程序: 复制代码 代码如下: <?php $arr = array('apple','banana','cat','dog'); unset($arr[2]); print_r($arr); ?> 程序运行结果: 复制代码 代码如下: Array ( [0] => apple [1] => banana [3] => dog ) 但是这种方法的最大缺点是没有重建数组索引,就是说,数组的第三个元素没了. 经过查资料后,原来PHP提供了这个功能,只不过很间接.这个函数是

  • php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】

    本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php $a = array("one","two","three"); $b = array("一","二","三"); $c = array_combine($a,$b); print_r($c

  • 删除PHP数组中头部、尾部、任意元素的实现代码

    在之前的一篇文章我们介绍了<如何向PHP数组中头部和尾部添加元素>既然有添加元素,那么就有删除元素,今天这篇文章详细介绍如何删除数组中的头部元素和尾部元素,还有任意数组元素. 删除末尾元素:array_pop 就像子弹的弹夹一样,最后压入的子弹是最先弹出的,在计算机术语里,我们称之为先进后出栈 既然array_push是往数组的末尾添加元素,那么array_pop就是从数组的末尾删除一个元素. array_pop()函数获取并返回数组的最后一个元素,并将整个数组的长度减 1 ,如果数组为空(或

  • php实现搜索一维数组元素并删除二维数组对应元素的方法

    本文实例讲述了php实现搜索一维数组元素并删除二维数组对应元素的方法.分享给大家供大家参考.具体如下: 定义一个一维数组一个二维数组如下 $fruit=array('apple','orange'); $products = array( array('name'=>'apple','price'=>23.4), array('name'=>'orange','price'=>45.3), array('name'=>'biscuit','number'=>5,'pri

随机推荐