>  기사  >  백엔드 개발  >  代码里面有 oneline 的数据和 twoline 的数据,如何把这两组数据并集起来?

代码里面有 oneline 的数据和 twoline 的数据,如何把这两组数据并集起来?

WBOY
WBOY원래의
2016-06-23 13:42:241031검색

	public function line($config,$qq='',$data=array()){		$array = array();		$line = $config['line'];		$url = trim($config[$line]);		if($line == 'oneline' && $qq != ''){			$content = $this->proGetCont($url.'/index.php?m=account&c=index&a=search&q='.$qq);			preg_match_all('/<tr>([\s\S]*?)<\/tr>/i',$content,$pregArray);			if(count($pregArray)){				foreach($pregArray[0] as $value){					preg_match_all('/<td([\s\S]*?)<\/td>/i',$value,$v); 					$ipVal = $this->strSub($v[0][3],'fa">','</td>');					$ipid = M('iplib')->where('ipval = \''.$ipVal.'\'')->find()['id'];					if(!$ipid){						$ipid = M('iplib')->add(array('ipval'=>$ipVal,'namelist'=>'1'));					}					$timsInt = strtotime($this->strSub($v[0][4],'fa">','</td>'));					$boolTure=true;					foreach($data as $d){						if(($d['jbtime'] == $timsInt) && ($ipid == $d['jbip'])){							$boolTure = false;						}					}					if($boolTure || count($data) ==0){						$array[] = array(								'jbip'=>$ipid,								'jbtime'=>$timsInt,								'number'=>$qq,								'class'=>'1',								'type'=>'4',								'whitelist'=>'0'							);					}									}				$rel = M('number')->addAll($array);			}				}				if($line == 'twoline' ){			$number = '';			$class = '1';			if($qq != ''){				if(!is_numeric($qq) || (strlen($qq) < 5) || (strlen($qq) > 13) ){					$this->error('您查询的QQ号格式错误!');					return $data;				}				$content = $this->proGetCont($url.'/form.php','qq='.$qq);				$number = $qq;							}			if($content){							$type = M('type')->select();				$typeArray = array();				foreach($type as $v){					$typeArray[trim($v['name'])] = $v['id'];				}									preg_match_all('/{([\s\S]*?)}/i',$content,$pregArray);					if(count($pregArray)){						foreach($pregArray[0] as $k => $value){							$ipVal = $this->strSub($value,'myip":',',"date');							$ipVal = str_replace('"','',$ipVal);							$ipid = M('iplib')->where('ipval = \''.$ipVal.'\'')->find()['id'];							if(!$ipid){								$ipid = M('iplib')->add(array('ipval'=>$ipVal,'namelist'=>'1'));							}							$timsInt = strtotime($this->strSub($value,'date":"','","typetext'));							$boolTure=true;							foreach($data as $d){								if(($d['jbtime'] == $timsInt) && ($ipid == $d['jbip'])){									$boolTure = false;								}							}							if($boolTure || count($data) ==0){								$array[$k]['jbip'] = $ipid;								$array[$k]['jbtime'] = $timsInt;								if($class == '1'){									$type = trim($this->unicode_decode($this->strSub($value,'typetext":"','","qq1')));								}								if($class == '2'){									$type = trim($this->unicode_decode($this->strSub($value,'typetext":"','","ww1')));								}								$array[$k]['type'] = (array_key_exists($type,$typeArray))?$typeArray[$type]:'其他';								$array[$k]['number'] = $number;								$array[$k]['class'] = $class;								$array[$k]['whitelist'] = '0';							}						}						$rel = M('number')->addAll($array);					}				}			}		}						if(count($array)){			foreach($array as $a){				$data[]=$a;			}		}				return $data;	}

代码里面有 oneline 的数据和 twoline 的数据,如何把这两组数据并集起来,谢谢!


回复讨论(解决方案)

<?php                                        //  $a = 1 2 3 4    $union =                            //  $b =   2   4 5 6        array_merge(            array_intersect($a, $b),    //         2   4            array_diff($a, $b),         //       1   3            array_diff($b, $a)          //               5 6        );                              //  $u = 1 2 3 4 5 6?>

两段的数据都写到 $array 中了,本来就是在一起的
只不过第二段的可能会覆盖第一段的

我先试试,多谢两位。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.