<?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