加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php array_intersect()效率

发布时间:2020-12-13 13:20:20 所属栏目:PHP教程 来源:网络整理
导读:考虑下面的脚本.只有三个值的两个数组.当我使用array_intersect()比较这两个数组时.结果很快. ?php$arrayOne = array('3','4','5');$arrayTwo = array('4','5','6');$intersect = array_intersect($arrayOne,$arrayTwo);print_r($intersect );? 我的问题是ar
考虑下面的脚本.只有三个值的两个数组.当我使用array_intersect()比较这两个数组时.结果很快.
<?php
$arrayOne = array('3','4','5');
$arrayTwo = array('4','5','6');

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

print_r($intersect );

?>

我的问题是array_intersect()的效率是多少.是否我们比较两个都有1000个值的数组.会产生更好的结果…..我们需要使用一些哈希函数来处理快速找到常用值这将是有效的??? ..我需要你的建议…

我正在做一个应用程序.如果有人来登录并使用facebook登录.然后该应用程序将获取他的朋友列表并查找是否有任何朋友在我的应用程序之前评论并向他显示.大概一个朋友可能在Facebook有200到300个朋友,db有超过1000条记录.我需要找到有效的我怎么能这样做…….

可以通过在第二阵列中构造一组搜索值来实现交集,并且可以使得在集合中查找以使其平均花费基本恒定的时间.因此,整个算法的运行时间可以是O(n).

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读