<?php/*CREATETABLE`baseinfo`(`id`int(11)NOTNULLAUTO_INCREMENT,`企业名称`varchar(255)DEFAULTNULL,PRIMARYKEY(`id`))ENGINE=MyISAM...
<?php /* CREATE TABLE `baseinfo` ( `id` int(11) NOT NULL AUTO_INCREMENT, `企业名称` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; CREATE TABLE `企业资质表` ( `企业id` int(11) NOT NULL, `条目` varchar(255) DEFAULT NULL, `数值` int(255) DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `政策表` ( `id` int(11) NOT NULL AUTO_INCREMENT, `政策名` varchar(255) DEFAULT NULL, `政策内容` varchar(255) DEFAULT NULL, `包含条件` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; CREATE TABLE `政策条件` ( `id` int(11) NOT NULL AUTO_INCREMENT, `条目` varchar(255) DEFAULT NULL, `条件` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; */ //条件 //根据政策id,查询条件库内相关条件 $total_score=100; $cond=array( 0=>array('id'=>1,'条目'=>'注册资金','条件'=>'>=2000'), 1=>array('id'=>1,'条目'=>'注册时间','条件'=>'<=2016'), 2=>array('id'=>1,'条目'=>'法人姓名','条件'=>'<=2016'), 3=>array('id'=>1,'条目'=>'汽车数量','条件'=>'>=200'), 4=>array('id'=>1,'条目'=>'老婆数量','条件'=>'<=1000'), 5=>array('id'=>1,'条目'=>'存款数量','条件'=>'>=2000') ); $condArray=[]; //组装条件数组便于对比 foreach ($cond as $value) { $condArray[$value['条目']]=$value['条件']; } // array (size=2) // '注册资金' => '>=2000' // '注册时间' => '<2016' //var_dump($condArray); //查询企业数据 $company=array( array('条目'=>'注册资金','数值'=>2000), array('条目'=>'注册时间','数值'=>2016), array('条目'=>'科研人员','数值'=>200), array('条目'=>'今年产值','数值'=>1000), ); var_dump(array_diff($cond,$company));die; $companyDetail=[]; //组装企业数据便于查询 foreach ($company as $val) { $companyDetail[$val['条目']]=$val['数值']; } // array (size=3) // '注册资金' => int 2000 // '注册时间' => int 2016 // '科研人员' => int 200 //var_dump($companyDetail); $ErrorResult=[]; //遍历条件数组,和企业数据中的项目进行匹配,使用eval执行条件判断 foreach ($condArray as $key=>$val) { echo $key.$val.PHP_EOL; if(isset($companyDetail[$key])){ $cd=$companyDetail[$key].$val; }else{ $ErrorResult[]=$key; echo "<br>[{$key}]未填写,为准确匹配,请填写企业的[{$key}]资料<br>"; continue; } $pattern = '/(\d+)([\>\=\<]*)(\d+)/'; preg_match($pattern, $cd, $parseResult); var_dump($parseResult); $result=checkParse($parseResult); $result= $result==true ? " 匹配" : " 不匹配"; echo "[{$cd}]".$result."<br><br>"; } $total_score=round($total_score-($total_score/count($condArray)*count($ErrorResult)),2); echo "匹配程度:".$total_score."%"; function checkParse($parseResult){ switch($parseResult[2]){ case "<": return $parseResult[1]<$parseResult[3]; break; case "<=": return $parseResult[1]<=$parseResult[3]; break; case ">=": return $parseResult[1]>=$parseResult[3]; break; case "=": return $parseResult[1]==$parseResult[3]; break; default: return false; } }
全文详见:http://xpxw.com/?id=84