php array_flip() 刪除數(shù)組重復(fù)元素
更新時(shí)間:2009年01月14日 02:45:45 作者:
在PHP中,用于刪除數(shù)組中重復(fù)元素有一個(gè)可用的函數(shù),那就是 array_unique(), 但是它并不是一個(gè)最高效的方法,使用array_flip() 函數(shù)將比array_uniqure()在速度上高出五倍左右。
方法如下:
$arr = array(…………) ;//假設(shè)有一萬(wàn)個(gè)元素的數(shù)組,里面有重復(fù)的元素。
$arr = array_flip(array_flip($arr)); //這樣便可以刪除重復(fù)元素。
究竟是怎么回事呢?來看下array_flip()的作用:array_flip()用于將一個(gè)數(shù)組的每個(gè)元素的鍵和值交換,如:
$arr1 = array (”age” => 30, “name” => “快樂園”);
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快樂園” => “name”);
在PHP的數(shù)組中,允許不同的元素可以取同一個(gè)值,但不允許同一個(gè)鍵名被不同的元素使用,如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20); “age” => 20將會(huì)取代”age” => 30
$arr1 = array (”name” => “快樂園”, “age” => 45);
這里 $arr1與$arr2 是相等的。
于是,我們便可以知道,為什么 array_flip(array_flip($arr)) 可以刪除數(shù)組中重復(fù)的元素了。首先,$arr里的值會(huì)變成鍵名,因?yàn)橹凳怯兄貜?fù)的,變成鍵名之后這些重復(fù)的值便成了重復(fù)的鍵名,PHP引擎將重復(fù)的鍵名刪除,只保留最后一個(gè)。如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20);
$arr1 = array_flip($arr1); //$arr1 變成了 array(”快樂園” => “name”, 20 => “age”);
//再把 $arr1 的鍵名與值還復(fù):
$arr1 = array_flip($arr1);
上面的代碼寫得簡(jiǎn)潔一些就是: $arr1 = array_flip(array_flip($arr1));
$arr = array(…………) ;//假設(shè)有一萬(wàn)個(gè)元素的數(shù)組,里面有重復(fù)的元素。
$arr = array_flip(array_flip($arr)); //這樣便可以刪除重復(fù)元素。
究竟是怎么回事呢?來看下array_flip()的作用:array_flip()用于將一個(gè)數(shù)組的每個(gè)元素的鍵和值交換,如:
$arr1 = array (”age” => 30, “name” => “快樂園”);
$arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快樂園” => “name”);
在PHP的數(shù)組中,允許不同的元素可以取同一個(gè)值,但不允許同一個(gè)鍵名被不同的元素使用,如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20); “age” => 20將會(huì)取代”age” => 30
$arr1 = array (”name” => “快樂園”, “age” => 45);
這里 $arr1與$arr2 是相等的。
于是,我們便可以知道,為什么 array_flip(array_flip($arr)) 可以刪除數(shù)組中重復(fù)的元素了。首先,$arr里的值會(huì)變成鍵名,因?yàn)橹凳怯兄貜?fù)的,變成鍵名之后這些重復(fù)的值便成了重復(fù)的鍵名,PHP引擎將重復(fù)的鍵名刪除,只保留最后一個(gè)。如:
$arr1 = array (”age” => 30, “name” => “快樂園”, “age” => 20);
$arr1 = array_flip($arr1); //$arr1 變成了 array(”快樂園” => “name”, 20 => “age”);
//再把 $arr1 的鍵名與值還復(fù):
$arr1 = array_flip($arr1);
上面的代碼寫得簡(jiǎn)潔一些就是: $arr1 = array_flip(array_flip($arr1));
您可能感興趣的文章:
- PHP中的array數(shù)組類型分析說明
- 類似php的js數(shù)組的in_array函數(shù)自定義方法
- php函數(shù)array_merge用法一例(合并同類數(shù)組)
- php專用數(shù)組排序類ArraySortUtil用法實(shí)例
- 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()使用實(shí)例
- php in_array() 檢查數(shù)組中是否存在某個(gè)值詳解
- PHP數(shù)組array類常見操作示例
相關(guān)文章
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
本文給大家分享的是如何讓thinkPHP在低版本的Nginx下支持PATHINFO去掉index.php路徑的方法,十分的簡(jiǎn)單實(shí)用,思路也很巧妙,有需要的小伙伴可以參考下2016-05-05PHP實(shí)現(xiàn)mysqli批量執(zhí)行多條語(yǔ)句的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)mysqli批量執(zhí)行多條語(yǔ)句的方法,結(jié)合實(shí)例形式分析了php連接mysqli并批量執(zhí)行多條語(yǔ)句的相關(guān)操作技巧,需要的朋友可以參考下2017-07-07PHP頁(yè)面轉(zhuǎn)UTF-8中文編碼亂碼的解決辦法
這篇文章主要介紹了php中uft-8中文編碼亂碼的解決辦法,需要的朋友可以參考下2015-10-10詳解phpmyadmin相關(guān)配置與錯(cuò)誤解決
這篇文章主要介紹了詳解phpmyadmin相關(guān)配置與錯(cuò)誤解決的相關(guān)資料,希望通過本文能幫助到大家,讓大家遇到這種問題可以解決,需要的朋友可以參考下2017-10-10php實(shí)現(xiàn)對(duì)文件壓縮簡(jiǎn)單的方法
在本篇文章里我們給大家整理的是關(guān)于php如何實(shí)現(xiàn)對(duì)文件壓縮的實(shí)例內(nèi)容,有需要的朋友們參考學(xué)習(xí)下。2019-09-09