我的表格列中有逗号分隔值,我必须将新值与旧值分开。
我的代码是
$a = '1,2,3,4';
$b = '1,2';
if(preg_match("/[^$b]/",$a,$matches)){
print_r($matches);
};
我想找到3,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
使用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
)
)