在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_flip() 函数将比array_uniqure()在速度上高出五倍左右。
方法如下:
$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));
分享到:
相关推荐
那么我们今天为大家介绍的PHP函数array_flip()在删除数组重复元素时的效率要比array_unique()函数高出大约5倍左右。PHP函数array_flip()格式:复制代码 代码如下:array array_flip ( array trans ) //array_flip — ...
在PHP中,用于删除数组中重复元素有一个可用的函数,那就是 array_unique(), 但是它并不是一个最高效的方法,使用array_flip() 函数将比array_uniqure()在速度上高出五倍左右。
array_flip() 定义和用法 array_flip() 函数将使数组的键名与其相应值调换,即键名变成了值,而值变成了键名。 array_flip() 函数返回一个反转后的数组,如果同一值出现了多次,则最后一个键名将作为它的值,所有...
array_flip() 返回一个反转后的 array,例如 trans 中的键名变成了值,而 trans 中的值成了键名。
bgtools_unify_flip_normal_polygon_v12bgtools_unify_flip_normal_polygon_v12bgtools_unify_flip_normal_polygon_v12bgtools_unify_flip_normal_polygon_v12
array_diff -- 计算数组的差集 array_fill -- 用给定的值填充数组 array_filter -- 用回调函数过滤数组中的单元 array_flip -- 交换数组中的键和值 array_intersect_assoc -- 带索引检查计算数组的交集 array_...
当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。 代码示例: <?php $result1 = array(a => green, red, b => green, blue, red); var_dump($result1); $result2 = array_unique($result1); var...
?php /** * 解决 php 5.2.6 以上版本 array_diff() 函数在处理 * 大数组时的需要花费超长时间的问题 * * 整理:http://www.CodeBit.cn * 来源:... $data2 = array_flip($data2); foreach($data2 as $hash => $ke
cnt_top,It is used to realize a D flip flop. it is written with verilog.
Atmel单片机编程工具,不带java运行环境,请自行安装。
Verilog code of D-Flip Flop
抛弃键盘!让Win7_Flip_3D特效点击实现,让你的电脑桌面更加绚丽
Simple D flip flip with D, clock, and Q.
包括一个8位D触发器、一个jk触发器、一个10的计数器。适合初学者和开发人员
Code in VHDL for a Flip Flop T (Toggle)
d flip flop implementation in hardware xilinx board