1

我的表格列中有逗号分隔值,我必须将新值与旧值分开。

我的代码是

    $a = '1,2,3,4';
    $b = '1,2';

    if(preg_match("/[^$b]/",$a,$matches)){
        print_r($matches);
    };

我想找到3,4,但我做不到。

4

2 回答 2

4

你真的不应该为此使用正则表达式。PHP 有很好的函数来计算交点:

$a = explode(',', '1,2,3,4');
$b = explode(',', '1,2');

print_r(array_values(array_diff($a, $b)));

也可以看看:array_diff()

请注意,这也适用于以下示例:

$a = '1,2,3,4';
$b = '1,3';

// outcome must be: 2, 4
于 2013-04-08T07:42:26.163 回答
-2

使用preg_match_all而不是 preg_match

$a = '1,2,3,4,10';
$b = '1,2';
if(preg_match_all("/[^$b](.*)/",$a,$matches)){
    print_r($matches);
};

输出

 Array
(
   [0] => Array
    (
        [0] => 3,4,10
    )

    [1] => Array
    (
        [0] => ,4,10
    )

 )
于 2013-04-08T07:42:19.227 回答