国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php array_flip()與array_uniqure()刪除數組重復元素

2024-09-04 11:45:49
字體:
來源:轉載
供稿:網友

在php中刪除數組重復元素的函數有幾個,一個是array_unique(),另外就是array_flip()與array_uniqure()函數,但后者比前者性能要高幾倍了,所以我只介紹兩者來刪除重復數組元素了。

實例代碼如下:

  1. $arr = array(…………) ;// 假設有數組包含一萬個元素,里面有重復的元素。 
  2. $arr = array_flip(array_flip($arr)); // 這樣便可以刪除重復元素。 

究竟是怎么回事呢?來看下array_flip()的作用:array_flip()用于將一個數組的每個元素的鍵和值交換,代碼如下:

  1. $arr1 = array("age" => 30, "name" => '快樂園'); 
  2. $arr2 = array_flip($arr1); // $arr2 就是 array(30 => "age", '快樂園' => "name"); 

在PHP數組中,允許不同的元素可以取同一個值,但不允許同一個鍵名被不同的元素使用,代碼如下:

  1. $arr1 = array("age" => 30, "name" => '快樂園'"age" => 20); "age" => 2 0將會取代 "age" => 30 
  2. $arr1 = array("name" => '快樂園'"age" => 45); 

這里 $arr1與$arr2 是相等的.

于是,我們便可以知道,為什么 array_flip(array_flip($arr))可以刪除數組中重復的元素了,首先,$arr里的值會變成鍵名,因為值是有重復的,變成鍵名之后這些重復的值便成了重復的鍵名,PHP 引擎將重復的鍵名刪除,只保留最后一個,代碼如下:

  1. $arr1 = array("age" => 30, "name" => '快樂園'"age" => 20); 
  2. $arr1 = array_flip($arr1); // $arr1 變成了 array("快樂園" => "name", 20 => "age"); 
  3. // 再把 $arr1 的鍵名與值還復: 
  4. $arr1 = array_flip($arr1); 

上面的代碼寫得簡潔一些就是:$arr1 = array_flip(array_flip($arr1));

一個自定刪除數組的函數,刪除數組中重復元素的函數,代碼如下:

  1. function delmember(&$array$id)  
  2. {  
  3. $size = count($array);  
  4. for($i = 0; $i <$size - $id - 1; $i ++)  
  5. {  
  6. $array[$id + $i] = $array[$id + $i + 1];  
  7. }  
  8. unset($array[$size - 1]);  
  9. }  
  10. //使用例子: 
  11.  代碼如下 復制代碼 
  12. $output = array(1, 2, 2, 'www.111cn.net', 5, 4, 4, 4, 2, 7, 5, 9, 10);  
  13. delsame($output);  
  14. while(list($key$value) = each($output))  
  15. {  
  16. echo "$key:$value"."<br>";  
  17. }  
  18. //方法二 
  19. function uniquearray($array
  20. // get unique elts as keys in assoc. array 
  21. for ($i=0,$n=count($array, 1);$i<$n;$i ) 
  22. $u_array[$array[$i]] = 1; 
  23.  
  24. // copy keys only into another array 
  25. reset($u_array, 1); 
  26. for ($i=0,$n=count($u_array, 1);$i<$n;$i ) { 
  27. $unduplicated_array[] = key($u_array, 1); 
  28. next($u_array, 1); 
  29. return $unduplicated_array
  30. }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通许县| 尼玛县| 通辽市| 东港市| 西宁市| 台前县| 武汉市| 大同县| 阜新| 林州市| 盘山县| 莆田市| 安远县| 衡阳市| 类乌齐县| 通河县| 洛宁县| 闽清县| 双辽市| 五原县| 汽车| 中宁县| 龙里县| 鄱阳县| 锦州市| 华容县| 苗栗市| 通城县| 阿鲁科尔沁旗| 台北县| 马山县| 嘉定区| 泰安市| 罗平县| 华阴市| 石门县| 棋牌| 林西县| 米林县| 姜堰市| 荔浦县|