1

我有 2 个数组,分别是 Array AB。数组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);
4

2 回答 2

1

结果基于我自己的测试,array_intersect()是选择。它可以在不到 1 秒的时间内产生结果,因为它的效率是O(n·log n).

参考:https ://stackoverflow.com/a/6329494/188331

于 2013-03-12T03:13:10.197 回答
-1

array_intersect 函数将用于跨数组检索公共值

但是由于数组大小很大,您需要在脚本中指定配置以执行考虑性能

    set_time_limit(0);
    ini_set('memory_limit','128M');

上面的代码片段将分别设置执行时间限制为无穷大,增加内存限制将分配更多内存来保存大型数组

于 2013-03-12T03:02:52.213 回答