多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 刪除數組與二維數組值的php代碼

刪除數組與二維數組值的php代碼

來源:程序員人生   發布時間:2013-11-27 02:21:01 閱讀次數:4295次

方法如下:

  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” => 20將會取代”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. //二維數組去掉重復值 
  2. function array_unique_fb($array2D)  
  3. {  
  4. foreach ($array2D as $v)  
  5. {  
  6. $v = join(",",$v); //降維,也可以用implode,將一維數組轉換為用逗號連接的字符串  
  7. $temp[] = $v;  
  8. }  
  9. $temp = array_unique($temp); //去掉重復的字符串,也就是重復的一維數組  
  10. foreach ($temp as $k => $v)  
  11. {  
  12. $temp[$k] = explode(",",$v); //再將拆開的數組重新組裝  
  13. }  
  14. return $temp;  

如果你想保留數組的鍵值,可以用下面的函數: 

  1. //二維數組去掉重復值 并保留鍵值 
  2. function array_unique_fb($array2D)  
  3. {  
  4. foreach ($array2D as $k=>$v)  
  5. {  
  6. $v = join(",",$v); //降維,也可以用implode,將一維數組轉換為用逗號連接的字符串  
  7. $temp[$k] = $v;  
  8. }  
  9. $temp = array_unique($temp); //去掉重復的字符串,也就是重復的一維數組  
  10. foreach ($temp as $k => $v)  
  11. {  
  12. $array=explode(",",$v); //再將拆開的數組重新組裝  
  13. $temp2[$k]["id"] =$array[0];  
  14. $temp2[$k]["litpic"] =$array[1];  
  15. $temp2[$k]["title"] =$array[2];  
  16. $temp2[$k]["address"] =$array[3];  
  17. $temp2[$k]["starttime"] =$array[4];  
  18. $temp2[$k]["endtime"] =$array[5];  
  19. $temp2[$k]["classid"] =$array[6];  
  20. $temp2[$k]["ename"] =$array[7];  
  21. }  
  22. return $temp2;  

大概就這樣啦,二維數組去重復

  1. <?php 
  2.  
  3. $arr = array(  
  4. array('id' => 1,'name' => 'aaa'),  
  5. array('id' => 2,'name' => 'bbb'),  
  6. array('id' => 3,'name' => 'ccc'),  
  7. array('id' => 4,'name' => 'ddd'),  
  8. array('id' => 5,'name' => 'ccc'),  
  9. array('id' => 6,'name' => 'aaa'),  
  10. array('id' => 7,'name' => 'bbb'),  
  11. );  
  12. function assoc_unique(&$arr$key)  
  13. {  
  14. $rAr=array();  
  15. for($i=0;$i<count($arr);$i++)  
  16. {  
  17. if(!isset($rAr[$arr[$i][$key]]))  
  18. {  
  19. $rAr[$arr[$i][$key]]=$arr[$i];  
  20. }  
  21. }  
  22. $arr=array_values($rAr);  
  23. }  
  24. assoc_unique(&$arr,'name');  
  25. print_r($arr);  
  26. ?> 

利用php自帶函數,說明

array array_unique ( array $array )

array_unique() 接受 array 作為輸入并返回沒有重復值的新數組。

注意鍵名保留不變。array_unique() 先將值作為字符串排序,然后對每個值只保留第一個遇到的鍵名,接著忽略所有后面的鍵名。這并不意味著在未排序的 array 中同一個值的第一個出現的鍵名會被保留。

Note: 當且僅當 (string) $elem1 === (string) $elem2 時兩個單元被認為相同。就是說,當字符串的表達一樣時。第一個單元將被保留。

Example #1 array_unique() 例子

  1. <?php 
  2. $input = array("a" => "green""red""b" => "green""blue""red"); 
  3. $result = array_unique($input); 
  4. print_r($result); 
  5. ?> 

上例將輸出:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

Example #2 array_unique() 和類型

  1. <?php 
  2. $input = array(4, "4""3", 4, 3, "3"); 
  3. $result = array_unique($input); 
  4. var_dump($result); 
  5. ?> 

上例將輸出:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 91午夜精品亚洲一区二区三区 | 欧洲freexxxx性| 久久久久久久久久久久久久久久久久久久 | 亚洲精品一区久久狠狠欧美 | 视频在线亚洲 | 99久久精品免费看国产免费软件 | 淫片免费 | 伊人精品视频在线 | 成人中文字幕在线高清 | 本土自拍 | 在线观看男女激情小视频 | 在线观看的网址 | 欧美日韩一 | 国产午夜亚洲精品不卡 | 狼人天堂网| 亚洲国产视频在线观看 | 欧美日韩国产成人精品 | 久久一本精品久久精品66 | 日本三线免费视频观看 | 欧美亚洲免费久久久 | 最新99国产成人精品视频免费 | 欧美精品一区二区三区四区 | 亚洲人成a在线网站 | 性欧美18-19sex性高清播放 | 国产精品久久国产三级国不卡顿 | 精品久久久中文字幕一区 | 在线看黄色网址 | 亚洲 中文 欧美 日韩 在线人 | 亚洲天堂h| 欧美在线一级va免费观看 | 老司机免费福利视频无毒午夜 | 久久国产影视 | 印度最猛性xxxxx | 国产高清国产精品国产k | 看片亚洲 | 免费播放春色aⅴ视频 | 成人欧美一区二区三区在线观看 | 色中色欧美| 久久久久国产视频 | 国产成人午夜91精品麻豆剧场 | 亚洲国产欧美在线 |