【发布时间】:2013-03-12 02:56:37
【问题描述】:
我有 2 个数组,数组 A 和 B 分别。数组 A 包含约 300,000 条字符串记录,例如
[0] => 'apple',
[1] => 'pineapple',
[2] => 'orange',
...
[299,999] => 'banana'
而数组 B 包含 100,000 个字符串值,例如
[0] => 'bamboo',
[1] => 'banana',
[2] => 'boy',
[3] => 'ball',
[4] => 'balloon',
[5] => 'bazooka',
问题是,如何找出两个数组之间的共同值?
array_intersect() 似乎是一个很有前途的功能,但我担心性能。将 2 个数组转换为文本文件并进行基于文件的比较会更好吗?还是我太担心了?
要使用的代码array_intersect():
$result_array = array_intersect($arrayA, $arrayB);
【问题讨论】:
-
您是否测试过可能的性能?
-
如果你有两个数组,
array_intersect可能是找到交集的最有效方法。将它们写入文件并没有多大意义。 -
除非你打算依赖操作系统的 diff 命令(假设它可用)array_intersect 应该是你最好的选择
-
确实是最好的解决方案。将数据写入文件将比处理内存中的数据花费更多时间:)
标签: php array-intersect