繁体   English   中英

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

[英]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"
   }
}

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

我努力了:

$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]]);
    }
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM