PHP - 如何以任何顺序测试多维数组中的重复元素值


PHP - How to test a multidimensional array for duplicate element values in any order

我不确定标题是否真的符合我的要求,所以这是我想要做的:

我有一个数组数组,

每个数组有四个整数元素,即。

Array(Array(1,2,3,4), Array(4,2,3,1), Array(18,3,22,9), Array(23, 12, 33, 55))

我基本上需要删除以任何顺序具有相同值的两个数组之一,例如上面示例中的索引 0 和 1。

当只有两个元素要检查时,我可以很容易地做到这一点,使用这个问题中的最佳答案代码。

我的多维数组在任何给定时间都可以有 1-10 个数组,所以我似乎无法找出处理这样的结构并删除以任何顺序具有相同数字的数组的最佳方法。

非常感谢!

我一直

在考虑这个问题,我认为使用设计良好的闭包和array_filter可能是我这样做的方式:

$matches = array();
$array = array_filter($array, function($ar) use (&$matches) {
    sort($ar);
    if(in_array($ar, $matches)) {
        return false;
    }
    $matches[] = $ar;
    return true;
});

有关示例,请参阅此处:http://ideone.com/Zl7tlR

编辑:$array将是您的最终结果,请忽略$matches因为它只是在过滤器关闭期间使用。