如何比较字符串是大字符串的一部分,两个字符串都存储在不同的数组索引中

时间:2016-02-15 14:44:09

标签: php arrays string

我的两个数组在其索引中包含不同的字符串,我想比较这些字符串以确保一个字符串是其他字符串或不是。例如

$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先生。 我希望你的人能理解我的问题

2 个答案:

答案 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;
}