好的,所以我有一个名为$arraymaster的数组,它基本上是一个教育代码数组(从最高到最低):
$arrayedumaster=array("P H D", "Post Graduate", "Professional", "Graduate", "Technical", "ITI", "Under Graduate", "H S C Passed", "S S C Passed", "Upto Ninth", "Upto Fifth", "No Schooling");
现在有第二个数组列出了我从数据库中获得的个人资格:
$arrayedu=explode(',', $edudetail);
$arrayedu的一些例子是(一个人可以有多个资格):
>研究生,HSC通过,研究生,专业,专业
>专业,SSC通过
>研究生,专业,技术
等等.
现在我必须确定一个人的最高资格(基于$arraymaster)>>然后在$arrayedu的基础上做一些动作.目前,我正在这么做:
if(in_array("P H D", $arrayedu){
$educode=1;
}
elseif(in_array("Post Graduate", $arrayedu) && !in_array("P H D",$arrayedu)){
$educode=2;
}
elseif(in_array("Professional", $arrayedu) && !in_array("P H D", $arrayedu)
&& !in_array("Post Graduate", $arrayedu)){
$educode=3;
}
elseif(in_array("Graduate", $arrayedu) && !in_array("Professional",
$arrayedu) && !in_array("P H D", $arrayedu) && !in_array("Post Graduate",
$arrayedu)){
$educode=4;
}
等等.所以基本上我试图从$arrayedu获得最高资格,是否有一些更简单的方法来做到这一点?
解决方法:
使用array_intersect和current函数的解决方案:
$arrayedumaster = [
"P H D", "Post Graduate", "Professional", "Graduate", "Technical", "ITI", "Under Graduate",
"H S C Passed", "S S C Passed", "Upto Ninth", "Upto Fifth", "No Schooling"
];
$arrayedu = ["Graduate", "HSC Passed", "Graduate", "Professional", "Professional"];
$highest_edu = current(array_intersect($arrayedumaster, $arrayedu));
print_r($highest_edu);
输出:
Professional
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。