当另一个数组中存在相同的值时,从数组中删除值

时间:2016-08-10 22:08:34

标签: php arrays

我有两个我想要比较的数组。如果值在第一个数组中至少存在一次,我需要删除其中的值的一个数组。这是阵列的样子:

array1: {
    1: {
        0: "1"
    },
    1: {
        0: "1"
    },
    24: {
        0: "24"
    },
    24: {
        0: "24"
    },
    24: {
        0: "24"
    },
    24: {
        0: "24"
    },
    26: {
        0: "26"
    }
},

array2: {
    1: {
        0: "blue"
    },
    23: {
        0: "yellow"
    },
    24: {
        0: "red"
    },
    26: {
        0: "green"
    }
},

我需要做的是检查array1键,如果array2在键中有相同的值,则将它们从数组2中删除。所以对于这个例子我应该只有

array2: {
   23: {
       0: "yellow"
   }
}

我必须为几个看起来相似的不同数组实例执行此操作。

我试过了:

$result = array_diff($array1, $array2);
print_r($result);

然后返回:

{
    25: {
         0: "25"
    }
}
{
    24: {
         0: "24"
    }
}
{
    24: {
         0: "24"
    }
}

虽然我意识到它正在返回这些值,因为第一个数组中有多个值。我想知道如何让它忽略双打。另外我不明白为什么23没有归还。

1 个答案:

答案 0 :(得分:2)

应该工作:

<?php 
    foreach($array1 as $a1){
        unset($array2[$a1[0]]);
    }
?>
相关问题