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

首頁 > 語言 > PHP > 正文

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

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

方法如下:

  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"
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济源市| 天津市| 南华县| 山东| 淮阳县| 三门峡市| 将乐县| 孝昌县| 遂川县| 宝鸡市| 二连浩特市| 永嘉县| 米林县| 黄浦区| 成安县| 永春县| 涿鹿县| 沙洋县| 客服| 玛纳斯县| 舒兰市| 东宁县| 邹平县| 芒康县| 桂平市| 青川县| 南宫市| 大洼县| 达尔| 瓦房店市| 墨玉县| 盐津县| 方正县| 云阳县| 永修县| 乌什县| 宜川县| 荥经县| 宜丰县| 罗定市| 北票市|