国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

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

2024-05-04 23:16:08
字體:
來源:轉載
供稿:網友
cisa 提交到 PHP 官方 BUG 頁面上的方法

復制代碼 代碼如下:


<?php
/**
* 解決 php 5.2.6 以上版本 array_diff() 函數在處理
* 大數組時的需要花費超長時間的問題
*
* 整理:
* 來源:
*/
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);
}
?>


根據 ChinaUnix 論壇版主 hightman 思路重寫的方法

復制代碼 代碼如下:


<?php
/**
* 解決 php 5.2.6 以上版本 array_diff() 函數在處理大數組時的效率問題
* 根據 ChinaUnix 論壇版主 hightman 思路寫的方法
*
* 整理:
* 參考:?tid=938096&rpid=6817036&ordertype=0&page=1#pid6817036
*/
function array_diff_fast($firstArray, $secondArray) {
// 轉換第二個數組的鍵值關系
$secondArray = array_flip($secondArray);
// 循環第一個數組
foreach($firstArray as $key => $value) {
// 如果第二個數組中存在第一個數組的值
if (isset($secondArray[$value])) {
// 移除第一個數組中對應的元素
unset($firstArray[$key]);
}
}
return $firstArray;
}
?>


此方法只交換了第二個數組的 key 和 value,所以效率更高。
注意:PHP 內置的 array_diff() 函數可以處理多個數組,而本文提供的方法只處理了兩個數組的比較。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海阳市| 昌黎县| 桦南县| 阳春市| 青铜峡市| 遂宁市| 鱼台县| 丰台区| 栾城县| 南京市| 武宣县| 太康县| 徐州市| 靖宇县| 太和县| 伊川县| 东乌珠穆沁旗| 大田县| 青浦区| 营口市| 伊川县| 当阳市| 普陀区| 梁河县| 临猗县| 徐闻县| 青神县| 马山县| 罗定市| 墨江| 洛隆县| 曲靖市| 南部县| 伽师县| 育儿| 凤庆县| 承德市| 四川省| 鸡西市| 梅河口市| 横山县|