php array_flip() 刪除數(shù)組重復元素
更新時間:2009年01月14日 02:45:45 作者:
在PHP中,用于刪除數(shù)組中重復元素有一個可用的函數(shù),那就是 array_unique(), 但是它并不是一個最高效的方法,使用array_flip() 函數(shù)將比array_uniqure()在速度上高出五倍左右。
方法如下:
$arr = array(…………) ;//假設有一萬個元素的數(shù)組,里面有重復的元素。
$arr = array_flip(array_flip($arr)); //這樣便可以刪除重復元素。
究竟是怎么回事呢?來看下array_flip()的作用:array_flip()用于將一個數(shù)組的每個元素的鍵和值交換,如:
$arr1 = array (”age” => 30, “name” => “快樂園”);
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快樂園” => “name”);
在PHP的數(shù)組中,允許不同的元素可以取同一個值,但不允許同一個鍵名被不同的元素使用,如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20); “age” => 20將會取代”age” => 30
$arr1 = array (”name” => “快樂園”, “age” => 45);
這里 $arr1與$arr2 是相等的。
于是,我們便可以知道,為什么 array_flip(array_flip($arr)) 可以刪除數(shù)組中重復的元素了。首先,$arr里的值會變成鍵名,因為值是有重復的,變成鍵名之后這些重復的值便成了重復的鍵名,PHP引擎將重復的鍵名刪除,只保留最后一個。如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20);
$arr1 = array_flip($arr1); //$arr1 變成了 array(”快樂園” => “name”, 20 => “age”);
//再把 $arr1 的鍵名與值還復:
$arr1 = array_flip($arr1);
上面的代碼寫得簡潔一些就是: $arr1 = array_flip(array_flip($arr1));
$arr = array(…………) ;//假設有一萬個元素的數(shù)組,里面有重復的元素。
$arr = array_flip(array_flip($arr)); //這樣便可以刪除重復元素。
究竟是怎么回事呢?來看下array_flip()的作用:array_flip()用于將一個數(shù)組的每個元素的鍵和值交換,如:
$arr1 = array (”age” => 30, “name” => “快樂園”);
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快樂園” => “name”);
在PHP的數(shù)組中,允許不同的元素可以取同一個值,但不允許同一個鍵名被不同的元素使用,如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20); “age” => 20將會取代”age” => 30
$arr1 = array (”name” => “快樂園”, “age” => 45);
這里 $arr1與$arr2 是相等的。
于是,我們便可以知道,為什么 array_flip(array_flip($arr)) 可以刪除數(shù)組中重復的元素了。首先,$arr里的值會變成鍵名,因為值是有重復的,變成鍵名之后這些重復的值便成了重復的鍵名,PHP引擎將重復的鍵名刪除,只保留最后一個。如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20);
$arr1 = array_flip($arr1); //$arr1 變成了 array(”快樂園” => “name”, 20 => “age”);
//再把 $arr1 的鍵名與值還復:
$arr1 = array_flip($arr1);
上面的代碼寫得簡潔一些就是: $arr1 = array_flip(array_flip($arr1));
您可能感興趣的文章:
- PHP中的array數(shù)組類型分析說明
- 類似php的js數(shù)組的in_array函數(shù)自定義方法
- php函數(shù)array_merge用法一例(合并同類數(shù)組)
- php專用數(shù)組排序類ArraySortUtil用法實例
- php數(shù)組(array)輸出的三種形式詳解
- php array_filter除去數(shù)組中的空字符元素
- php數(shù)組函數(shù)序列之a(chǎn)rray_keys() - 獲取數(shù)組鍵名
- PHP合并數(shù)組+與array_merge的區(qū)別分析
- php數(shù)組函數(shù)序列之a(chǎn)rray_key_exists() - 查找數(shù)組鍵名是否存在
- php數(shù)組查找函數(shù)in_array()、array_search()、array_key_exists()使用實例
- php in_array() 檢查數(shù)組中是否存在某個值詳解
- PHP數(shù)組array類常見操作示例
相關文章
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
本文給大家分享的是如何讓thinkPHP在低版本的Nginx下支持PATHINFO去掉index.php路徑的方法,十分的簡單實用,思路也很巧妙,有需要的小伙伴可以參考下2016-05-05PHP實現(xiàn)mysqli批量執(zhí)行多條語句的方法示例
這篇文章主要介紹了PHP實現(xiàn)mysqli批量執(zhí)行多條語句的方法,結合實例形式分析了php連接mysqli并批量執(zhí)行多條語句的相關操作技巧,需要的朋友可以參考下2017-07-07