从另一个数组中删除数组中的值

时间:2012-12-18 18:15:15

标签: php arrays

我有2个数组,我想删除第二个数组中第一个数组中的所有内容。在这种情况下,我想在第一列中删除“ibomber”和“apphero”。我尝试了一些未设置的东西,但它看起来不像它有效。

array (size=5)
  0 => string 'Air Hippo' (length=9)
  1 => string 'iBomber Defense Pacific' (length=23)
  3 => string 'AppHero' (length=7)
  5 => string 'Pillboxie' (length=9)
  6 => string 'Monogram' (length=8)

array (size=2)
  0 => string ' iBomber Defense Pacific' (length=24)
  1 => string ' AppHero' (length=8)

这就是我的尝试:

foreach ($_SESSION["appsarray"] as $k=>$v)
{
    foreach ($_SESSION["finalapps"] as $k2=>$v2)
    {
        if ($v == $v2)
        {   
            unset ($_SESSION["appsarray"][$k]);
        }
    }
}

Session appsarray是我的第一个数组,会话finalapps是我的第二个数组。

谢谢!

2 个答案:

答案 0 :(得分:3)

function TrimmedStrCaseCmp($str1,$str2)
{
    return strcasecmp(trim(str1),trim(str2));
}

$result = array_udiff(values,to_remove_from_values,'TrimmedStrCaseCmp');

http://php.net/manual/en/function.array-udiff.php

答案 1 :(得分:2)

您正在寻找array_diff,即

$appsarray = array('Air Hippo','iBomber Defense Pacific','AppHero','Pillboxie','Monogram');
$finalapps = array('iBomber Defense Pacific','AppHero');
$result = array_diff($appsarray,$finalapps);

print_r($result);

将输出;

Array ( [0] => Air Hippo [3] => Pillboxie [4] => Monogram )