array_diff()の処理速度が遅いので高速化
key,valueをarray_flip()で反転させた配列同士からarray_diff_key()で差分を取り、
再度key,valueを反転させてarray_diff()と同じ結果を取っています。
function.php
//高速array_diff()
function fast_array_diff($a1,$a2){
return array_flip(array_diff_key(array_flip((array)$a1),array_flip((array)$a2)));
}
処理速度の比較
3000個の整数値が入った配列\$a1と14000個の整数値が入った配列\$a2を用意しました。
array_diff($a1,$a2)
1.6024 sec
遅い(´・ω・`)
fast_array_diff($a1,$a2)
0.0053 sec
速い(*・ω・*)
整数の配列以外で検証してないので、もし結果が異なる場合があれば教えて頂きたいです。