我的两个数组在其索引中包含不同的字符串,我想比较这些字符串以确保一个字符串是其他字符串或不是。例如
$final_array=array("BSSE (English) Mr. John","BSSE (Physics) Mr. jack","BSSE (Math) Mr. peter");
$teachers=array("Mr.John","Mr. peter","Mr. jack");
现在我想通过将“teachers array”索引与“final_array”的所有索引进行比较来获得john先生所教授的所有类,以使元素具有字符串部分John先生。 我希望你的人能理解我的问题
答案 0 :(得分:0)
正如我在评论中所说,只有在教师姓名是唯一的且教师姓名在两个阵列中的拼写相同时,这才有效。
循环遍历所有教师,并将每个教师字符串与每个类字符串进行比较。如果教师名称存在于其中一个类名中,则代码将通过if语句运行。
foreach($teachers as $teacher) {
foreach($final_array as $class) {
if(strpos($class, $teacher) !== FALSE) {
//Do something
}
}
}
答案 1 :(得分:0)
首先,我建议您从字符串中删除空格
$string = str_replace(' ', '', $string);
同时使该字符串全部小写
$string = strtolower($string);
这样,阵列位置之间的比较将更容易:
$tcounter = 0;
$ccounter = 0;
foreach($teachers as $teacher) {
$tname = strtolower(str_replace(' ','', $teacher));
$tcounter ++;
foreach($final_array as $class) {
$cname = strtolower(str_replace(' ','', $class));
if(strpos($cname, $tname) !== FALSE) {
echo '$teachers["'.$tcounter.'"] found on $final_array["'.$ccounter.'"]';
}
$ccounter++;
}
$ccounter=0;
}