分享一個PHP函數,用來找出5個Array的交集_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了分享一個PHP函數,用來找出5個Array的交集_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2909字,纯文字阅读大概需要5分钟。
内容图文
![分享一個PHP函數,用來找出5個Array的交集_PHP教程](/upload/InfoBanner/zyjiaocheng/172/0def4050398f4e9581856adfb3936bf7.jpg)
/** 數組碰撞,找出多個數組的重疊值 返回: 重整之後的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; }
http://www.bkjia.com/PHPjc/440321.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/440321.htmlTechArticle/**數組碰撞,找出多個數組的重疊值返回:重整之後的Array,如下:$arr=Array(0='',//5個數組重疊的部份1='',//第1個數組去掉[0]的值后2='',//第2個數組...
内容总结
以上是互联网集市为您收集整理的分享一個PHP函數,用來找出5個Array的交集_PHP教程全部内容,希望文章能够帮你解决分享一個PHP函數,用來找出5個Array的交集_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。