php 自定义求数组差集,效率比自带的array_diff函数还要快(转)
<?php
function array_different($array_1, $array_2) {
	$array_2 = array_flip($array_2);	//将数组键值调换
foreach ($array_1 as $key => $val) {
		if (isset($array_2[$val])) {
			unset($array_1[$key]);
		}
	}
return $array_1;
}
function runtime($mode = 0) {
	static $t;
if (!$mode) {
		$t = microtime();
		return;
	}
$t1 = microtime();
	list($m0, $s0) = explode(" ", $t);
	list($m1, $s1) = explode(" ", $t1);
return sprintf("%.3f", ($s1 + $m1 - $s0 - $m0) * 1000);
}
$array_1 = array();
$array_2 = array();
for ($i = 0; $i <= 5000; $i++) {
	$array_1[$i] = mt_rand(0, 100);
	$array_2[$i] = mt_rand(0, 100);
}
runtime();	//计时开始
$arr_diff = array_diff($array_1, $array_2);
echo runtime(1);	//计时结束并输出计时结果
echo '<br>';
foreach ($arr_diff as $key => $val) {
	echo $val.',';
}
runtime();	//计时开始
$arr_diff2 = array_different($array_1, $array_2);
echo runtime(2);	//计时结束并且输出计时结果
foreach ($arr_diff2 as $key => $val) {
	echo $val.',';
}
php 自定义求数组差集,效率比自带的array_diff函数还要快(转)的更多相关文章
- JS求数组差集的几种方法
		
第一种:如果不考虑IE8的兼容性完全可以使用Foreach ,此方法求出arr1 减去 arr2的差集, arr1 = [1,2,3,4];arr2 = [1,2,3]; var subSet = f ...
 - 求数组差/交集函数-php数组函数(二)
		
求数组差集函数 函数只检查了多维数组中的一维.可以用 array_diff($array1[0], $array2[0]) 检查更深的维度. u:自定义函数比较,a(association):同时比较 ...
 - 利用Underscore求数组的交集、并集和差集
		
1 数组交集函数——intersection 数组的交集是指包含多个数组中的共同元素的一个数组,求数组的交集就是找出给定数组中的共有元素. 下面实现一个求两个数组交集的函数. 判断数组是够包含指定值, ...
 - javascript 数组求交集/差集/并集/过滤重复
		
最近在小一个小程序项目,突然发现 javscript 对数组支持不是很好,连这些基本的功能,都还要自己封装.网上查了下,再结合自己的想法,封装了一下,代码如下. //数组交集 Array.protot ...
 - C陷阱:求数组长度
		
// 这是一篇导入进来的旧博客,可能有时效性问题. 程序中,当我们建立了一个int型数组:int a[]={1,2,3,4,5,6};随后我们可能需要知道它的长度,此时可以用这种方法:length = ...
 - java-IO流-字符流-FileReader、FileWriter、自定义小数组的拷贝、BufferedReader、BufferedWriter、readLine()和newLine()方法、LineNumberReader、使用指定的码表读写字符
		
###21.01_IO流(字符流FileReader) * 1.字符流是什么 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要 ...
 - Task 4 求数组的连续子数组的最大和(团队合作)
		
小组成员:李敏.刘子晗 1.设计思想:由于已经做过这个题目,只要对之前的程序加上相应的测试和约束即可.我们两个人一起商议后,决定了程序的主框架和并列出了最终可以实现的功能.先要定义数组长度和上下限的变 ...
 - [LeetCode] Find Peak Element 求数组的局部峰值
		
A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...
 - struts2:遍历自定义字符串数组,遍历Action实例所引用对象中的数组
		
在struts2:OGNL表达式,遍历List.Map集合:投影的使用一文中已经讲述了OGNL遍历List.Map集合等功能. 本文简单写一个遍历数组的示范程序. 1. 遍历自定义字符串数组 < ...
 
随机推荐
- Java学习----对象与对象之间的关系
			
1.依赖 对象之间最弱的一种关联方式,是临时性的关联.代码中一般指由局部变量,函数参数,返回值建立的对于其他对象的调用关系. public class A { // 方法一 public void t ...
 - 微博输入相关js 代码
			
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
 - du和df不一致的解决方法
			
df:disk free,统计的是当前系统中空闲的磁盘du:disk usage,统计的是正在使用的空闲的磁盘.如果一个文件被删除之后,使用这个文件的进程未重启,则会出现df和du不一致的情况. 解决 ...
 - UVa1605 - Building for UN(构造法)
			
UVA - 1605 Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu Description ...
 - ipython与python的区别
			
http://mba.shengwushibie.com/itbook/BookChapter.asp?id=8745 http://www.cnblogs.com/yangze/archive/20 ...
 - 20141127 测试使用Word2013书写博客(代码高亮+公式支持)。
			
PS :又经过几次测试,发现用于Word2010的高亮插件在Word2013上排版效果不是很好,慎用.不过公式编辑倒是挺方便的 测试使用Word2013书写博客. 大概一个月前,使用WindowL ...
 - Jcrop 做图片剪裁 在IE中无法显示问题解决办法
			
我遇到的Jcrop做剪裁无法显示的问题 是在IE8下发生的(在 firfox he chrome 中是显示正常的) 解决办法 是在一个图片加载完成后在 初始化 Jcrop:1.预加载图片的方法 var ...
 - A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems
			
A Statistical View of Deep Learning (IV): Recurrent Nets and Dynamical Systems Recurrent neural netw ...
 - 见过NTP服务,没见过网络流量到200M左右的NTP服务
			
XXX,看来可能是NTP.CONF的文件配置错误所致了. 附上一段查看网络流量的SHELL.(好像只针对ETH0,如果要看其它的,还需要修改) #!/bin/bash typeset in_old d ...
 - GNU工具链学习笔记
			
GNU工具链学习笔记 1..so为动态链接库,.a为静态连接库.他们在Linux下按照ELF格式存储.ELF有四种文件类型.可重定位文件(Relocatable file,*.o,*.a),包含代码和 ...