欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP的array_diff()函數(shù)在處理大數(shù)組時(shí)的效率問題

 更新時(shí)間:2011年11月27日 23:15:31   作者:  
PHP 5.2.6 以上版本的 array_diff() 函數(shù)在處理大數(shù)組時(shí),需要花費(fèi)超長(zhǎng)時(shí)間,這個(gè) bug 已經(jīng)被官方確認(rèn);在這個(gè)問題被修復(fù)之前或者在我們不能控制 PHP 版本的時(shí)候,可以使用本文提供的方法
cisa 提交到 PHP 官方 BUG 頁面上的方法
復(fù)制代碼 代碼如下:

<?php
/**
* 解決 php 5.2.6 以上版本 array_diff() 函數(shù)在處理
* 大數(shù)組時(shí)的需要花費(fèi)超長(zhǎng)時(shí)間的問題
*
* 整理:http://www.CodeBit.cn
* 來源:http://bugs.php.net/47643
*/
function array_diff_fast($data1, $data2) {
$data1 = array_flip($data1);
$data2 = array_flip($data2);
foreach($data2 as $hash => $key) {
if (isset($data1[$hash])) unset($data1[$hash]);
}
return array_flip($data1);
}
?>

根據(jù) ChinaUnix 論壇版主 hightman 思路重寫的方法
復(fù)制代碼 代碼如下:

<?php
/**
* 解決 php 5.2.6 以上版本 array_diff() 函數(shù)在處理大數(shù)組時(shí)的效率問題
* 根據(jù) ChinaUnix 論壇版主 hightman 思路寫的方法
*
* 整理:http://www.CodeBit.cn
* 參考:http://bbs.chinaunix.net/viewthread.php?tid=938096&rpid=6817036&ordertype=0&page=1#pid6817036
*/
function array_diff_fast($firstArray, $secondArray) {
// 轉(zhuǎn)換第二個(gè)數(shù)組的鍵值關(guān)系
$secondArray = array_flip($secondArray);
// 循環(huán)第一個(gè)數(shù)組
foreach($firstArray as $key => $value) {
// 如果第二個(gè)數(shù)組中存在第一個(gè)數(shù)組的值
if (isset($secondArray[$value])) {
// 移除第一個(gè)數(shù)組中對(duì)應(yīng)的元素
unset($firstArray[$key]);
}
}
return $firstArray;
}
?>

此方法只交換了第二個(gè)數(shù)組的 key 和 value,所以效率更高。
注意:PHP 內(nèi)置的 array_diff() 函數(shù)可以處理多個(gè)數(shù)組,而本文提供的方法只處理了兩個(gè)數(shù)組的比較。

相關(guān)文章

  • php實(shí)現(xiàn)兩表合并成新表并且有序排列的方法

    php實(shí)現(xiàn)兩表合并成新表并且有序排列的方法

    這篇文章主要介紹了php實(shí)現(xiàn)兩表合并成新表并且有序排列的方法,涉及針對(duì)數(shù)組的遍歷與排序操作技巧,具有一定的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-12-12
  • php簡(jiǎn)單生成隨機(jī)數(shù)的方法

    php簡(jiǎn)單生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了php簡(jiǎn)單生成隨機(jī)數(shù)的方法,該功能可用于生成驗(yàn)證碼,涉及php字符串及mt_rand方法的使用技巧,需要的朋友可以參考下
    2015-07-07
  • PHP 遍歷XP文件夾下所有文件

    PHP 遍歷XP文件夾下所有文件

    這只是遍歷第一層文件夾的文件,用isdir()稍加改進(jìn)可以遍歷更多層文件夾;
    2008-11-11
  • PHP使用new StdClass()創(chuàng)建空對(duì)象的方法分析

    PHP使用new StdClass()創(chuàng)建空對(duì)象的方法分析

    這篇文章主要介紹了PHP使用new StdClass()創(chuàng)建空對(duì)象的方法,結(jié)合具體實(shí)例形式分析了php空對(duì)象的創(chuàng)建與使用方法,需要的朋友可以參考下
    2017-06-06
  • 淺談php優(yōu)化需要注意的地方

    淺談php優(yōu)化需要注意的地方

    本文總結(jié)了一些自己在項(xiàng)目中進(jìn)行php優(yōu)化的時(shí)候的注意事項(xiàng),都是自己經(jīng)常用到的,這里推薦給大家,有遺漏的地方也請(qǐng)告之。
    2014-11-11
  • PHP計(jì)算個(gè)人所得稅示例【不使用速算扣除數(shù)】

    PHP計(jì)算個(gè)人所得稅示例【不使用速算扣除數(shù)】

    這篇文章主要介紹了PHP計(jì)算個(gè)人所得稅,結(jié)合實(shí)例形式分析了php自定義函數(shù)不使用速算扣除數(shù)計(jì)算個(gè)人所得稅的相關(guān)操作技巧,涉及數(shù)組遍歷、數(shù)值運(yùn)算的簡(jiǎn)單使用,需要的朋友可以參考下
    2018-03-03
  • PHP實(shí)現(xiàn)動(dòng)態(tài)柱狀圖改進(jìn)版

    PHP實(shí)現(xiàn)動(dòng)態(tài)柱狀圖改進(jìn)版

    這篇文章主要介紹了PHP實(shí)現(xiàn)動(dòng)態(tài)柱狀圖改進(jìn)版,是在前面所述實(shí)現(xiàn)柱狀圖的基礎(chǔ)上進(jìn)行的改進(jìn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP訪問Google Search API的方法

    PHP訪問Google Search API的方法

    這篇文章主要介紹了PHP訪問Google Search API的方法,實(shí)例分析了php針對(duì)谷歌API訪問的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • PHP curl get post 請(qǐng)求的封裝函數(shù)示例【get、post、put、delete等請(qǐng)求類型】

    PHP curl get post 請(qǐng)求的封裝函數(shù)示例【get、post、put

    這篇文章主要介紹了PHP curl get post 請(qǐng)求的封裝函,包含了php使用curl針對(duì)get、post、put、delete等請(qǐng)求類型進(jìn)行封裝的操作技巧,以及CURLOPT_CUSTOMREQUEST控制DELETE、PUT請(qǐng)求類型的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2023-04-04
  • PHP?array_combine()?函數(shù)內(nèi)置函數(shù)

    PHP?array_combine()?函數(shù)內(nèi)置函數(shù)

    這篇文章主要介紹了PHP?array_combine()函數(shù)內(nèi)置函數(shù),array_combine()是PHP中的一個(gè)內(nèi)置函數(shù),用于組合兩個(gè)數(shù)組并通過使用一個(gè)數(shù)組作為鍵和另一個(gè)數(shù)組作為值來創(chuàng)建一個(gè)新數(shù)組
    2022-09-09

最新評(píng)論