我一直在尝试比较两个数组。使用array_intersect没有问题。当我使用array_diff和包含约5000个值的数组时,它有效。但是,当我使用包含约10000个值的数组时,当我到达array_diff时,脚本会崩溃。打开error_reporting也没有产生任何效果。
我尝试创建自己的array_diff函数:
function manual_array_diff($arraya, $arrayb) {
foreach ($arraya as $keya => $valuea) {
if (in_array($valuea, $arrayb)) {
unset($arraya[$keya]);
}
}
return $arraya;
}
我本来以为它比官方的array_diff效率要低,但它能处理大约10,000个元素的数组。不幸的是,当数组达到 ~15,000 时,两种array_diff都无法正常运行。
我在另一台机器上尝试了相同的代码,它可以良好地运行,所以这不是代码或PHP的问题。那台特定服务器上必须设置了某些限制。有什么办法可以绕过这个限制、修改它或者只是找出它是什么?