分享一個PHP函數,用來找出5個Array的交集
来源:互联网 发布:java php aes加密解密 编辑:程序博客网 时间:2024/05/16 17:48
/**數組碰撞,找出多個數組的重疊值返回:重整之後的Array,如下:$arr=Array(0=>'',//5個數組重疊的部份1=>'',//第1個數組去掉[0]的值后2=>'',//第2個數組去掉[0]的值后3=>'',//第3個數組去掉[0]的值后4=>'',//第4個數組去掉[0]的值后5=>'',//第5個數組去掉[0]的值后);參數:要重整的5個數組/**/Public Static Function JiaoJi($arr1,$arr2,$arr3,$arr4,$arr5) {IF(!Is_array($arr1) Or !Is_array($arr2) Or !Is_array($arr3) Or !Is_array($arr4) Or !Is_array($arr5)) {throw New Exception('Error:'.__LINE__.',參數錯誤!');Die();}$arr=Array();//找出這5個數組中重複的部份,賦值給$arr[0]{//合併數組$narr=Array_Merge($arr1,$arr2,$arr3,$arr4,$arr5);//降維Foreach($narr as $v){$v = Implode('`',$v);//降维$temp[] = $v;}unSet($narr);//去重复$unique_arr = Array_Unique($temp);//取差集$repeat_arr = Array_Diff_Assoc($temp,$unique_arr);unSet($temp,$unique_arr);//去重複$repeat_arr=Array_Unique($repeat_arr);//升維Foreach($repeat_arr as $k=>$v){$v = Explode('`',$v);$v['gid']=$v[0];unSet($v[0]);$v['cod']=$v[1];unSet($v[1]);$v['tid1']=$v[2];unSet($v[2]);$v['tid2']=$v[3];unSet($v[3]);$v['stime']=$v[4];unSet($v[4]);$temp[] = $v;}$arr[0]=$temp;unSet($temp,$repeat_arr);}/**去掉5個數組中包含$arr[0]的部份array(5) { ["gid"]=>string(1) "2" ["cod"]=>string(4) "4002" ["tid1"]=>string(3) "184" ["tid2"]=>string(3) "199" ["stime"]=>string(19) "2013-07-25 02:19:00"}/**/$max=Max(Count($arr1),Count($arr2),Count($arr3),Count($arr4),Count($arr5));Foreach($arr[0] as $k=>$v) {For($i=0;$i<$max;$i++) {//去掉arr1和$arr[0]的重複部份IF(isSet($arr1[$i])) {IF($arr1[$i]['gid']==$v['gid'] And $arr1[$i]['cod']==$v['cod'] And $arr1[$i]['tid1']==$v['tid1'] And $arr1[$i]['tid2']==$v['tid2'] And $arr1[$i]['stime']==$v['stime']) {unSet($arr1[$i]);}}//去掉arr2和$arr[0]的重複部份IF(isSet($arr2[$i])) {IF($arr2[$i]['gid']==$v['gid'] And $arr2[$i]['cod']==$v['cod'] And $arr2[$i]['tid1']==$v['tid1'] And $arr2[$i]['tid2']==$v['tid2'] And $arr2[$i]['stime']==$v['stime']) {unSet($arr2[$i]);}}//去掉arr3和$arr[0]的重複部份IF(isSet($arr3[$i])) {IF($arr3[$i]['gid']==$v['gid'] And $arr3[$i]['cod']==$v['cod'] And $arr3[$i]['tid1']==$v['tid1'] And $arr3[$i]['tid2']==$v['tid2'] And $arr3[$i]['stime']==$v['stime']) {unSet($arr3[$i]);}}//去掉arr4和$arr[0]的重複部份IF(isSet($arr4[$i])) {IF($arr4[$i]['gid']==$v['gid'] And $arr4[$i]['cod']==$v['cod'] And $arr4[$i]['tid1']==$v['tid1'] And $arr4[$i]['tid2']==$v['tid2'] And $arr4[$i]['stime']==$v['stime']) {unSet($arr4[$i]);}}//去掉arr5和$arr[0]的重複部份IF(isSet($arr5[$i])) {IF($arr5[$i]['gid']==$v['gid'] And $arr5[$i]['cod']==$v['cod'] And $arr5[$i]['tid1']==$v['tid1'] And $arr5[$i]['tid2']==$v['tid2'] And $arr5[$i]['stime']==$v['stime']) {unSet($arr5[$i]);}}}}unSet($max);$arr[1]=$arr1;unSet($arr1);$arr[2]=$arr2;unSet($arr2);$arr[3]=$arr3;unSet($arr3);$arr[4]=$arr4;unSet($arr4);$arr[5]=$arr5;unSet($arr5);Return $arr;}
0 0
- 分享一個PHP函數,用來找出5個Array的交集
- PHP - Manual手册 - V. Array 数组函数 - array_intersect计算数组的交集
- PHP数组交集的优化
- PHP数组交集的优化
- 【php】用set_error_handler找出未定义的变量
- 找出php的错误
- list交集,Array相等
- php使用分享(一)
- PHP计算两个数组的交集
- PHP数组交集函数的实例讲解
- 数组之求两个sorted Array的交集
- PHP比较时间段一与时间段二是否有交集
- php array的实现
- php array的用法
- PHP array的总结
- 两个自小到大的整形数组,找出两个数组的交集的元素
- php-Arrays 函数-array_intersect_ukey-用回调函数比较键名来计算数组的交集
- 有两个有序整数集合a和b,写一个函数找出它们的交集
- python学习笔记--打印嵌套list中每个数据(遍历列表)
- 马云教会我一件事:拉出来的还可以再坐回去
- linux服务器配合php和cron自动实现封锁攻击者ip
- 菲律賓開槍事件引發台灣黑客怒火,公佈了大量菲律賓政府的DNS密碼
- ffmpeg.c中的主要函数
- 分享一個PHP函數,用來找出5個Array的交集
- 真希望能夠統一一下接口
- 请远离include_once和require_once
- PHP的unset究竟会不会释放内存?
- 用PHP纯手工打造会动的多帧GIF图片验证码
- PHP内置的预定义常量大全
- 使用Linux(CentOS)搭建SVN服务器全攻略
- facebook's HipHop for PHP: Move Fast
- PHP之算法偶遇隨感