在很多情况下我们的数组会出现重复情况,那我们删除数组中一些重复的内容怎么办,这些元素我必须保持他唯一,所以就想办法来删除它们,下面利用了遍历查询来删除重复数组元素的几种方法.
看一完整删除重复数组实例,代码如下:
- //删除数组中的一个元素
- function array_remove_value(&$arr, $var){
- foreach ($arr as $key => $value) {
- if (is_array($value)) {
- array_remove_value($arr[$key], $var);
- } else {
- $value = trim($value);
- if ($value == $var) {
- unset($arr[$key]);
- } else {
- $arr[$key] = $value;
- }
- }
- }
- }
$a是一个数组:
- <?php
- $a=array("red", "green", "blue", "yellow");
- count($a); //得到4
- unset($a[1]); //删除第二个元素
- count($a); //得到3
- echo $a[2]; //数组中仅有三个元素,本想得到最后一个元素,但却得到blue,
- echo $a[1]; //无值
- ?>
也就是说在删除数组中的元素后,数组中的元素个数(用count()得到)变了,但数组下标却没有重新排列,还必须用删除数组前的key来操作相应的值.
后来我采用另一种方法,其实根本就不叫"方法",是用php4现成的函数array_splice(),代码如下:
- <?php
- $a=array("red", "green", "blue", "yellow");
- count ($a); //得到4
- array_splice($a,1,1); //删除第二个元素
- count ($a); //得到3
- echo $a[2]; //得到yellow
- echo $a[1]; //得到blue
- ?>
方法二,删除数组中重复元素的函数,代码如下:
- function delmember(&$array, $id)
- {
- $size = count($array);
- for($i = 0; $i <$size - $id - 1; $i ++)
- {
- $array[$id + $i] = $array[$id + $i + 1];
- }
- unset($array[$size - 1]);
- }//开源软件:Vevb.com
新闻热点
疑难解答