两个字符串之间交集的第一段

med*_*ina 5 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, '
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决 SOME_FUNCTION 问题吗?

我在这里用过这个:

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));
}
Run Code Online (Sandbox Code Playgroud)

但它返回: // Metric Bob Foundation A5, Lined, in & rane

这不太正确。正如我所说,我只想要第一部分。

提前致谢。

MrC*_*ode 2

演示

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);
Run Code Online (Sandbox Code Playgroud)

输出

Metric Bob Foundation A5, Lined, 
Run Code Online (Sandbox Code Playgroud)