在很多情況下我們的數組會出現重復情況,那我們刪除數組中一些重復的內容怎么辦,這些元素我必須保持他唯一,所以就想辦法來刪除它們,下面利用了遍歷查詢來刪除重復數組元素的幾種方法.
看一完整刪除重復數組實例,代碼如下:
- //刪除數組中的一個元素
- 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
新聞熱點
疑難解答