最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP數(shù)組去重比較快的實現(xiàn)方式

 更新時間:2016年01月19日 12:37:58   作者:Aintnot  
使用PHP的array_unique()函數(shù)允許你傳遞一個數(shù)組,然后移除重復的值,返回一個擁有唯一值的數(shù)組,通過本文給大家介紹PHP數(shù)組去重比較快的實現(xiàn)方式,需要的朋友參考下本文

概述

使用PHP的array_unique()函數(shù)允許你傳遞一個數(shù)組,然后移除重復的值,返回一個擁有唯一值的數(shù)組。這個函數(shù)大多數(shù)情況下都能工作得很好。但是,如果你嘗試在一個大的數(shù)組里使用array_unique()函數(shù),它會運行地慢一些。

有一個比較好而且更快的函數(shù)array_flip()來替代使用array_unique()函數(shù)來創(chuàng)建唯一的數(shù)組。這個魔法般的函數(shù)會交換數(shù)組里面每一個元素的鍵和值,因為鍵值必須唯一,因此,你會得到跟array_unique()函數(shù)一樣的結(jié)果。

更快的方式實現(xiàn)PHP數(shù)組去重

/* 創(chuàng)建一個包含重復值的,一共四個元素的數(shù)組 */
$array = array('green','blue','orange','blue');
/* 翻轉(zhuǎn)數(shù)組,你將會得到唯一鍵值的數(shù)組
array('green'=>0,'blue'=>1,'orange'=>2); */
$array = array_flip($array);
/* 然后再翻轉(zhuǎn)一次,將鍵和值重新放置,然后得到數(shù)組:array(0=>'green',1=>'blue',2=>'orange'); */
$array = array_flip($array);

因為我們已經(jīng)移除了一些元素,因此數(shù)組看起來不是正常的序列。比如我們可能會得到:array(0=>'A',2=>'B',5=>'C');。在某些情況下,這不是一個問題,但是如果你需要數(shù)組的鍵值保持數(shù)字的序列,你可以使用一到兩種方法解決鍵值亂序的問題。

使用array_merge修復數(shù)組的keys

添加array_flip之后的函數(shù),將會對數(shù)組的鍵值排序并且讓它們恢復到正常的序列,如:0,1,2,3…

$array = array('green','blue','orange','blue');
$array = array_flip($array);
$array = array_flip($array);
/* 使用array_merge()函數(shù)修復鍵值*/
$array = array_merge($array); 
 

第二種方式,使用array_keys

注意,這種修復數(shù)組鍵值的方法比使用array_merge()函數(shù)稍微快了一點。你也可以在最后一步結(jié)合使用array_keys()函數(shù)(此函數(shù)返回翻轉(zhuǎn)后的值)。然后當你翻轉(zhuǎn)數(shù)組的值,鍵值就會根據(jù)順序創(chuàng)建。

$array = array('green','blue','orange','blue');
$array = array_flip($array);
/* 跟第一個例子一樣,但是現(xiàn)在我們先提取數(shù)組的鍵值 */
$array = array_keys($array); 

結(jié)論

非常簡單,比起在大數(shù)組使用array_unique函數(shù),有了一個有效的性能提升。

相關(guān)文章

  • php arsort 數(shù)組降序排序詳細介紹

    php arsort 數(shù)組降序排序詳細介紹

    php arsort函數(shù)用于將數(shù)組中的元素按照降序進行排序,如果排序成功則返回true,否則返回false,本文章向大家講解arsort函數(shù)的基本語法及使用實例,需要的朋友可以參考下
    2016-11-11
  • Yii2 assets清除緩存的方法

    Yii2 assets清除緩存的方法

    這篇文章主要介紹了Yii2 assets清除緩存的方法,涉及Yii中assets相關(guān)函數(shù)調(diào)用與配置技巧,需要的朋友可以參考下
    2016-05-05
  • PHP 的Opcache加速的使用方法

    PHP 的Opcache加速的使用方法

    本篇文章主要介紹了PHP 的Opcache加速的使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • PHP中使用CURL發(fā)送get/post請求上傳圖片批處理功能

    PHP中使用CURL發(fā)送get/post請求上傳圖片批處理功能

    這篇文章主要介紹了PHP中使用CURL發(fā)送get/post請求上傳圖片批處理 功能,本文通過實例代碼給大家介紹的非常詳細,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • PHP之預定義接口詳解

    PHP之預定義接口詳解

    這篇文章主要整理了PHP之預定義接口,在平時項目過程中比較常用的四個接口:IteratorAggregate(聚合式aggregate迭代器Iterator)、Countable、ArrayAccess、Iterator,需要的朋友可以參考下
    2015-07-07
  • PHP中模擬鏈表和鏈表的基本操作示例

    PHP中模擬鏈表和鏈表的基本操作示例

    這篇文章主要介紹了PHP中模擬鏈表和列表的基本操作示例,包括鏈表的增刪查改等,說明基本上都包含在代碼注釋中,需要的朋友可以參考下
    2016-02-02
  • PHP中SQL查詢語句的id=%d解釋(推薦)

    PHP中SQL查詢語句的id=%d解釋(推薦)

    很多朋友不清楚php中sql查詢語句的id=%d的意思,今天小編通過本文給大家詳細介紹下PHP中SQL查詢語句的id=%d解釋,需要的朋友參考下吧
    2016-12-12
  • Yii2.0 模態(tài)彈出框+ajax提交表單

    Yii2.0 模態(tài)彈出框+ajax提交表單

    這篇文章主要介紹了Yii2.0 模態(tài)彈出框+ajax提交表單的實現(xiàn)思路和相關(guān)代碼,非常簡單實用,有需要的小伙伴可以參考下
    2016-05-05
  • php制作圓形用戶頭像的實例_自定義封裝類源代碼

    php制作圓形用戶頭像的實例_自定義封裝類源代碼

    下面小編就為大家?guī)硪黄猵hp制作圓形用戶頭像的實例_自定義封裝類源代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • Laravel中利用隊列發(fā)送郵件的方法示例

    Laravel中利用隊列發(fā)送郵件的方法示例

    在日常利用laravel開發(fā)博客中,經(jīng)常遇到發(fā)送郵件的功能,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以下面這篇文章主要給大家介紹了關(guān)于Laravel中隊列發(fā)送郵件的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08

最新評論

奎屯市| 四会市| 碌曲县| 泸州市| 古丈县| 封丘县| 临西县| 湘潭市| 广昌县| 武乡县| 封开县| 肥西县| 铁岭市| 黑河市| 会同县| 翁源县| 通州区| 通海县| 长治县| 牙克石市| 阳新县| 澄迈县| 新化县| 绵阳市| 绵竹市| 宣城市| 上饶市| 鞍山市| 紫云| 宽城| 明光市| 莆田市| 精河县| 谷城县| 临安市| 宣武区| 海阳市| 武川县| 秭归县| 扎赉特旗| 新田县|