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


Removing values from an array when the same value exists in another array

我有两个数组,我试图比较。我需要删除其中一个数组中的值,如果这些值在第一个数组中至少出现一次。下面是数组的样子:

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"
   }
}

我必须为几个看起来相似的数组的不同实例这样做。

I have try:

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

返回:

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

虽然我意识到它返回这些值,因为在第一个数组中有它们的倍数。我想知道怎样才能让它忽略双数。我也不明白为什么23没有被退回。

应该工作:

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