Chinaunix首页 | 论坛 | 博客
  • 博客访问: 196811
  • 博文数量: 43
  • 博客积分: 2178
  • 博客等级: 大尉
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 15:19
文章分类

全部博文(43)

文章存档

2012年(23)

2011年(10)

2009年(10)

分类: 系统运维

2012-01-10 14:49:36

如果将两个数组的键值进行对比查找出差集 有个一内置函数 array_diff
  1. function array_diff_rewrite($array1, $array2) {
  2.     array_flip($array2);
  3.     foreach ($array1 as $k=>$v) {
  4.         if (isset($array2[$v])) {
  5.             unset($array1[$k]);
  6.         }
  7.     }
  8.     return $array1;
  9. }
这样的效果比原生的array_diff执行效率都高?????

因为数组中的键是HASH组织的,查找很快; 而键值是有KEY组织存放,本身木有索引,每次查找都需要遍历。
总结,每次进行数组对比或者查询,将数组中的k-v反转判断,效率将会更高。
阅读(2140) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~