我的表格列中有逗号分隔值,我必须将旧值与旧值分开。
我的代码是
$a = '1,2,3,4';
$b = '1,2';
if(preg_match("/[^$b]/",$a,$matches)){
print_r($matches);
};
我想找3,4
,但我不能这样做。
答案 0 :(得分: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
答案 1 :(得分:-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
)
)