php:如何在php中获得两个字符串之间的交集

kha*_*sim -3 php

我有 2 到 3 个字符串示例 1:

$a1 = 'a & b & c';
$a2 = 'b & c';
$a3 = 'a & b & c';
Run Code Online (Sandbox Code Playgroud)

我想要输出,因为交叉点是

$result = 'b & c' if there is no intersection it should return blank
Run Code Online (Sandbox Code Playgroud)

你能否为我提供上述情况的解决方案

Rob*_*sen 6

array_intersectexplode,implode和结合使用的方法array_map

$a1 = 'a & b & c';
$a2 = 'b & c';
$a3 = 'a & b & c';

$result = implode(' & ',
    call_user_func_array('array_intersect',
        array_map(function($a) {
            return explode(' & ', $a);
        },
        [$a1, $a2, $a3])
    )
);

echo($result);
Run Code Online (Sandbox Code Playgroud)

或者如果你想直接传入一个数组:

$arr = ['a & b & c', 'b & c', 'a & b & c'];

$result = implode(' & ',
    call_user_func_array('array_intersect',
        array_map(function($a) {
            return explode(' & ', $a);
        },
        $arr)
    )
);  

echo($result);
Run Code Online (Sandbox Code Playgroud)