在多个阵列上寻找多种模式

时间:2012-09-04 09:14:30

标签: php regex arrays

Array
(
    [0] => Oramen
    [1] => 20
    [2] => OT-301-FNS
    [3] => 40X40
)
Array
(
    [0] => LR-153-TKW
    [1] => Klaten
    [2] => Rectangular
    [3] => 
    [4] => 12x135x97
)
Array
(
    [0] => GN-187-TKW
    [1] => GARDEN
    [2] => LAMP
    [3] => POST
    [4] => A
    [5] => 30x30x130.JPG
)
Array
(
    [0] => BANDUNG
    [1] => ENTERTAINMENT
    [2] => TABLE
    [3] => LR-315-TKW
    [4] => 
    [5] => -
    [6] => 180x50x46.5
)`enter code here` 

我想删除所有与家具尺寸相匹配的商品。是否可以使用一个正则表达式表达式?非常感谢帮助

1 个答案:

答案 0 :(得分:0)

你可能需要这样的东西:

foreach ($array_of_arrays as &$some_array) {
  $some_array = array_filter($some_array, function($el) { 
    return ! preg_match('#^\d+x\d+#i', $el);
  });
}
unset($some_array);

换句话说,您使用函数尝试过滤每个数组,该函数尝试逐个匹配其元素与模式...

`/^\d+x\d+/i`

...表示'匹配字符串的开头,然后是任意数量的数字,然后是x字符,然后是任意数量的数字'。从我在您的示例中看到的情况来看,这是一种模式,因为^\d+x\d+x\d+与“40X40”值不匹配。