Php 两个字符串相交的第一段

Php 两个字符串相交的第一段,php,Php,我试图得到PHP中两个字符串相交的第一段。诸如此类: $a = 'Metric Bob Foundation A5, Lined, Pink & Orange'; $b = 'Metric Bob Foundation A5, Lined, Navy & Green'; echo SOME_FUNCTION($a, $b); // Expected output: 'Metric Bob Foundation A5, Lined, ' 有人能帮我做些什么吗 我

我试图得到PHP中两个字符串相交的第一段。诸如此类:

$a = 'Metric Bob Foundation A5, Lined, Pink & Orange';
$b = 'Metric Bob Foundation A5, Lined, Navy & Green';
echo SOME_FUNCTION($a, $b);

// Expected output: 'Metric Bob Foundation A5, Lined, '
有人能帮我做些什么吗

我在这里用过这个:

function string_intersect($string1, $string2)
{
    $array1 = $array2 = array();

    for($i = 0, $j = 0, $s1_len = strlen($string1), $s2_len = strlen($string2);($i < $s1_len) || ($j < $s2_len); $i++, $j++) {
        if($i < $s1_len) {
            $array1[] = $string1[$i];
        }
        if($j < $s2_len) {
            $array2[] = $string2[$j];
        }
    }

    return implode('', array_intersect($array1, $array2));
}
function string\u intersect($string1,$string2)
{
$array1=$array2=array();
对于($i=0,$j=0,$s1_len=strlen($string1),$s2_len=strlen($string2);($i<$s1_len)|($j<$s2_len);$i++,$j++){
如果($i<$s1){
$array1[]=$string1[$i];
}
如果($j<$s2){
$array2[]=$string2[$j];
}
}
返回内爆(“”,数组相交($array1,$array2));
}
但它的回报是: //度量Bob基金会A5,内线,IN和RANE

这并不完全正确。正如我所说的,我只想要第一部分

提前谢谢。

function compString($a, $b){
    $arr = explode(" ", $a);
    $brr = explode(" ", $b);
    $final = array();
    for($i=0 ; $i < count($arr); $i++)
    {
        if($arr[$i] == $brr[$i])
            $final[] = $arr[$i];
        else
            break;
    }
    echo implode(" ", $final);
}
试试这个

 <?php
 function get_match($a, $b)
 {
 $tmp='';
 $a=str_split($a);
 $b=str_split($b);
 foreach($a as $key => $data)
 {
   if($data==$b[$key])
 $tmp.=$data;
else
 return $tmp;   
  }
 return $tmp;
}
$a = 'Metric Bob Foundation A5, Lined, Pink &amp; Orange';
$b = 'Metric Bob Foundation A5, Lined, Navy &amp; Green';
echo get_match($a, $b);


?>
函数getIntersection($str1,$str2) { //获取str1和str2的最小长度
$l=strlen($str1)您是否试图比较并获得从第一个到第二个匹配的子字符串?看这里:Christian,我已经编辑了我的问题。
function some_function($a, $b)
{
    $result = '';
    $len = strlen($a) > strlen($b) ? strlen($b) : strlen($a);
    for($i=0; $i<$len; $i++)
    {
        if(substr($a, $i, 1) == substr($b, $i, 1))
        {
            $result .= substr($a, $i, 1);
        }
        else
        {
            break;
        }
    }
    return $result;
}

$a = 'Metric Bob Foundation A5, Lined, Pink &amp; Orange';
$b = 'Metric Bob Foundation A5, Lined, Navy &amp; Green';
echo some_function($a, $b);
Metric Bob Foundation A5, Lined, 
 <?php
 function get_match($a, $b)
 {
 $tmp='';
 $a=str_split($a);
 $b=str_split($b);
 foreach($a as $key => $data)
 {
   if($data==$b[$key])
 $tmp.=$data;
else
 return $tmp;   
  }
 return $tmp;
}
$a = 'Metric Bob Foundation A5, Lined, Pink &amp; Orange';
$b = 'Metric Bob Foundation A5, Lined, Navy &amp; Green';
echo get_match($a, $b);


?>
 Metric Bob Foundation A5, Lined,
function getIntersection ($str1,$str2)
{
    //get the min length of str1 & str2
    $l = strlen($str1) <= strlen($str2)? strlen($str1):strlen($str2);
    $intersection = "";
    //substring length
    $i = 0;
    while($i < $l && (substr($str1,0,$i) == substr($str2,0,$i) ))
    {
        $i++;
    }
    return substr($str1,0,$i-1);
}
$a = 'Metric Bob Foundation A5, Lined,sdf Pink &amp; Orange';
$b = 'Metric Bob Foundation A5, Lined, Navy &amp; Green';
echo getIntersection ($a, $b);