cisa가 PHP 공식 BUG 페이지에 제출하는 방법
코드 복사 코드는 다음과 같습니다.
< ?php
/ **
* PHP 5.2.6 이상에서 array_diff() 함수가
* 큰 배열 처리 시 시간이 오래 걸리는 문제 해결
*
* 정리: 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); > 코드는 다음과 같습니다:
/**
* PHP 5.2.6 이상에서 큰 배열을 처리할 때 array_diff() 함수의 효율성 문제를 해결
* 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) {
// 두 번째 배열 변환 키-값 관계$secondArray = array_flip($secondArray)
// 첫 번째 배열 반복
foreach($firstArray as $key => $value ) {
// 첫 번째 배열인 경우 첫 번째 배열의 값이 두 배열에 존재합니다
if (isset($secondArray[$value])) {
// 첫 번째 배열에서 해당 요소를 제거합니다. array
unset($firstArray[ $key]);
}
}
return $firstArray;
}
?> 두 번째 배열의 키와 값만 교환하므로 더 효율적입니다.
참고: PHP에 내장된 array_diff() 함수는 여러 배열을 처리할 수 있지만 이 기사에서 제공하는 방법은 두 배열의 비교만 처리합니다.
위 내용은 serializearray의 내용을 포함하여 큰 배열을 처리할 때 serializearray PHP의 array_diff 함수의 효율성 문제를 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.