色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

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

cisa 提交到 php 官方 BUG 頁面上的方法
復(fù)制代碼 代碼如下:
<?php
/**
* 解決 php 5.2.6 以上版本 array_diff() 函數(shù)在處理
* 大數(shù)組時(shí)的需要花費(fèi)超長時(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ù)組的比較。

php技術(shù)PHP的array_diff()函數(shù)在處理大數(shù)組時(shí)的效率問題,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 汝南县| 盘锦市| 宁乡县| 额济纳旗| 自贡市| 桦南县| 颍上县| 锡林郭勒盟| 崇义县| 台江县| 彭山县| 黄山市| 海林市| 彰化县| 攀枝花市| 绵阳市| 衡水市| 崇信县| 鄂州市| 潮安县| 金山区| 文山县| 原平市| 仪陇县| 河间市| 凌云县| 大连市| 江源县| 当阳市| 南雄市| 德令哈市| 尉氏县| 禹州市| 石林| 厦门市| 唐山市| 阿巴嘎旗| 荆门市| 北川| 谢通门县| 蛟河市|