gpt4 book ai didi

php array_intersect() 效率

转载 作者:可可西里 更新时间:2023-11-01 12:40:17 25 4
gpt4 key购买 nike

考虑下面的脚本。只有三个值的两个数组。当我使用 array_intersect() 比较这两个数组时。结果很快。

    <?php
$arrayOne = array('3', '4', '5');
$arrayTwo = array('4', '5', '6');

$intersect = array_intersect($arrayOne, $arrayTwo);

print_r($intersect );

?>

我的问题是 array_intersect() 的效率如何。我们是否比较两个数组,每个数组都有 1000 个值。会产生更好的结果.....我们需要使用一些散列函数来处理快速找到共同值(value)这将是有效的???..我需要你对此的建议...

我正在做一个应用程序。如果一个人来并使用 facebook 登录。然后该应用程序将获取他的 friend 列表,并查找之前是否有 friend 在我的应用程序中发表评论并将其显示给他。大致一个 friend 在facebook上可能有200到300个 friend ,db有1000多条记录。我需要有效地找到那个我该怎么做......

最佳答案

可以通过在第二个数组中构造一组搜索值来实现交集,并且可以非常快速地在集合中查找平均花费基本恒定的时间。因此,整个算法的运行时间可以在O(n)

或者,可以对第二个数组进行排序(在 O(n log n) 中)。由于在排序数组中查找的运行时间为 O(log n),因此整个算法的运行时间应该为 O(n log n)

根据我刚刚运行的(简短的、不科学的)测试,这似乎是 php 的 array_intersect 的情况:

Performance of array_intersect

Here's the code我曾经测试过它。如您所见,对于小至 1000 的输入大小,您无需担心。

关于php array_intersect() 效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6329211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com