有时我们需要把数组中的重复元素删除,只留下一个。我们可以自己编一个函数来实现这一功能,下面是函数的原代码,其中的delmember()函数是用来删除指定某一元素的,而函数delsame()内部是通过找出有重复的元素并通过调用delmember()函数来把它们删除。 //删除数组中某一指定元素的函数 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]); } //删除数组中重复元素的函数 function delsame(&$array) { $i = 0; while(isset($array[$i])) { $j = $i + 1; while(isset($array[$j])) { if($array[$i] == $array[$j]) //如果发现后面有重复的元素 { delmember($array, $j); //把它删除 $j--; //重新检查补上来的元素是否是重复的 } $j ++; } $i ++; } } 使用例子: <? $output = array(1, 2, 2, 4, 5, 4, 4, 4, 2, 7, 5, 9, 10); delsame($output); while(list($key, $value) = each($output)) { echo "$key:$value"."<br>"; } ?> 输出结果为: 0:1 1:2 2:4 3:5 4:7 5:9 6:10 文章来源:www.oso.com.cn phpfans.net收集整理 |