php 5.2.6 以上版本的 array_diff() 函数在处理大数组时,需要花费超长时间,这个 bug 已经被官方确认;在这个问题被修复之前或者在我们不能控制 php 版本的时候,可以使用本文提供的方法
cisa 提交到 PHP 官方 BUG 页面上的方法
代码如下:
$key) {
if (isset($data1[$hash])) unset($data1[$hash]);
}
return array_flip($data1);
}
?>
根据 ChinaUnix 论坛版主 hightman 思路重写的方法
PHP经典实例(第2版)能够为您节省宝贵的Web开发时间。有了这些针对真实问题的解决方案放在手边,大多数编程难题都会迎刃而解。《PHP经典实例(第2版)》将PHP的特性与经典实例丛书的独特形式组合到一起,足以帮您成功地构建跨浏览器的Web应用程序。在这个修订版中,您可以更加方便地找到各种编程问题的解决方案,《PHP经典实例(第2版)》中内容涵盖了:表单处理;Session管理;数据库交互;使用We
代码如下:
$value) {
// 如果第二个数组中存在第一个数组的值
if (isset($secondArray[$value])) {
// 移除第一个数组中对应的元素
unset($firstArray[$key]);
}
}
return $firstArray;
}
?>此方法只交换了第二个数组的 key 和 value,所以效率更高。
注意:PHP 内置的 array_diff() 函数可以处理多个数组,而本文提供的方法只处理了两个数组的比较。










