PHP一些有用的技巧

1.比较俩数组差异,并返回包含处在第一个数组的差异的数组
$arr1=array();
$arr2=array();
方法1:原生array array_diff ( array array1, array array2 [, array ...] )
$result = array_diff($arr1,$arr2);
方法2:bool in_array ( mixed needle, array haystack [, bool strict] )
function array_diff_2($arr1,$arr2){
$result = $arr1;
foreach($arr1 as $key => $value ){
if( in_array($value , $arr2 , true) ) {
unset($result[$key]);
}
}
return $result;
}
方法3:array array_flip ( array trans ) 返回键和值交换的数组
function array_diff_3($arr1,$arr2){
$arr2_tmp = array_flip($arr2);
$arr1_tmp = $arr1;
foreach ($arr1 as $key => $value ) {
if( isset($arr2_tmp[$value]) ) {
unset($arr1_tmp[$key]);
}
}
return $arr1_tmp;
}
大量数据对比用第三种方法效率最高。原理:把数组arr2的值转换成键.因为键是进行HASH组织的,查找很快,而value只是由key组织存放,本身没有索引,每次查找都是遍历。
参考资料:
http://bbs.chinaunix.net/viewthread.php?tid=938096
http://www.chinaunix.net/jh/27/1032441.html
待会修改东西去
另外你这里说3秒才能发表,但是3分钟都不能。
每次得重播宽带