strpos的相反功能是获取与字符串或数组中的特定模式不匹配的值

时间:2013-01-04 21:34:49

标签: php arrays match strpos

我可以使用的功能基本上与做

相反
if(strpos($array['some_key'], $value)!==false) {
    that means there's a match and confinue
}

我基本上想要遍历两个数组并抓住那些与$value中的$array没有匹配的数组。

    $array = 

      Array
            (
            [0] => GPPZ20
            [1] => GPPZ45
            [2] => GPPZ75
            [3] => GPPZH20
            [4] => GPPZH45
       )


     $codes = 

        Array
    (
     [0] => Array
      (
        [count] => 1
        [code] => GPPZH20SWYE4A2VZU
        [amount] => 20
    )

    )

      Array
     (
       [0] => Array
      (
        [count] => 1
        [code] => GPPZH2077434178J6
        [amount] => 20
    )

      )

    Array
(
   [0] => Array
    (
        [count] => 17
        [code] => PMMC4
        [amount] => 25
    )

)

Array
(
[0] => Array
    (
        [count] => 1
        [code] => GPPZH2052910M8V62
        [amount] => 20
    )

)

Array
(
[0] => Array
    (
        [count] => 1
        [code] => GPPZH45B3116LD1VW
        [amount] => 45
    )

 )

所以我想要的是抓取$ codes数组中$ code ['code']值与$ array值中的任何值不匹配的所有值。

现在我有那些匹配并抓住那些

  foreach($codes as $code) {
      foreach($array as $key=>$value) {
         if(strpos($code['code'], $value)!==false) {
              //it matches grab those values
         }
       }
  }  

我现在基本上需要这样的东西来抓住那些不匹配的

1 个答案:

答案 0 :(得分:0)

您应该使用array_filter功能 - http://php.net/manual/en/function.array-filter.php例如:

function myFilter($val){ return strpos('foo', $val) === false; }
$array = array("foobar", "foo", "bar");
var_dump(array_filter($array, myFilter));

您也可以使用preg_match方法代替strpos