首頁  >  文章  >  後端開發  >  serializearray PHP的array_diff函數在處理大數組時的效率問題

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

WBOY
WBOY原創
2016-07-29 08:47:241165瀏覽

cisa 提交到PHP 官方BUG 頁面上的方法

複製程式碼 程式碼如下:


/**
* 解決php 5.2.6 以上版本array_diff() 函數在處理
* 大數組時的需要花費超長時間的問題
*
* 整理:http://www.CodeBit.cn
* 來源:http:/ /bugs.php.net/47643
*/
function array_diff_fast(/**
* 解決php 5.2.6 以上版本array_diff() 函數在處理大數組時的效率問題
* 根據ChinaUnix 論壇版主hightman 思路寫的方法
*
* 整理:http://www.CodeBit.cn
*
* 整理:http://www.CodeBit.cn
*參考:http://bbs.chinaunix.net/viewthread.php?tid=938096&rpid=6817036&ordertype=0&page=1#pid6817036
*/
function array_diff,$1($1) = array_flip($data1);

$data2 = array_flip($data2);
foreach($data2 as $hash => $key) {
if (isset($data1[$hash])) unset($data1[$ hash]);

} return array_flip($data1); } return array_flip($data1); }

?>



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





/**&*/
function array_diff_fast($firstArray, $secondArray) {
// 轉換第二個陣列的鍵值關係
/$secondArray = array_flip($secondArray);
foreach($firstArray as $key => $value) {
// 如果第二個陣列中存在第一個陣列的值
if (isset($secondArray[$value])) {
// 移除第一個陣列中對應的元素
unset($firstArray[$key]);
}
}
return $firstArray;
}
?>

這個方法只交換了第二個數組效率更高。
注意:PHP 內建的 array_diff() 函數可以處理多個數組,而本文提供的方法只處理了兩個數組的比較。
以上就介紹了serializearray PHP的array_diff函數在處理大數組時的效率問題,包括了serializearray方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn