復制代碼 代碼如下:
 
<?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); 
} 
?> 
復制代碼 代碼如下:
 
<?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; 
} 
?> 
新聞熱點
疑難解答