PHP如何从数组中删除元素 - array_uniqe将无法正常工作

Mar*_*cos 5 php arrays duplicate-removal

我有PHP数组,我有从这个数组中删除一些元素的问题.它看起来像这样:

Array
(
    [0] => 2x 633130A
    [1] => 2x 525130B
    [2] => 2x 591130B
    [3] => 2x 963130B
    [4] => 2x 813130B (20mm)
    [5] => 2x 813130B
    [6] => 2x 313130B (12mm)
    [7] => 2x 313130B
    [8] => 4x 413130B
    [9] => 2x 633130B
    [12] => 2x 381130A (23mm)
    [13] => 2x 381130A
)
Run Code Online (Sandbox Code Playgroud)

现在我想删除没有mm参数的重复元素,如下所示:

    FROM                =====>              TO          

Array                                   Array
(                                       (
    [0] => 2x 633130A                   [0] => 2x 633130A       
    [1] => 2x 525130B                   [1] => 2x 525130B
    [2] => 2x 591130B                   [2] => 2x 591130B
    [3] => 2x 963130B                   [3] => 2x 963130B
    [4] => 2x 813130B (20mm)            [4] => 2x 813130B (20mm)
    [5] => 2x 813130B <= REMOVE         [5] => 2x 313130B (12mm)
    [6] => 2x 313130B (12mm)            [6] => 4x 413130B
    [7] => 2x 313130B <= REMOVE         [7] => 2x 633130B
    [8] => 4x 413130B                   [8] => 2x 381130A (23mm)
    [9] => 2x 633130B                   )       
    [12] => 2x 381130A (23mm)                   
    [13] => 2x 381130A <= REMOVE
)
Run Code Online (Sandbox Code Playgroud)

我试过array_unique在这种情况下不起作用,因为元素不完全相同.任何人都可以帮我如何删除那些重复的元素?

Mic*_*ton 2

在这种情况下,这将满足您的需要:

  foreach ($array as $value)
  {

    if (FALSE !== strpos($value, '('))
    {

      $string = trim(strtok($value, '('));

      while (FALSE !== $key = array_search($string, $array))
      {
        unset($array[$key]);
      }

    }

  }
Run Code Online (Sandbox Code Playgroud)

它将迭代数组,查找(字符串中包含 a 的所有元素,查找字符串与 the 匹配的任何元素((修剪掉多余的空格),然后如果找到则将其删除。