检查三维数组PHP中的所有重复值

问题描述 投票:0回答:1

我在这里看到了多维数组的一些答案,但是我找不到解决我问题的方法。

我有这个数组,它是一个三维数组,或者您想称呼它的任何东西。

我需要检查所有重复的CodColaborador并将其从阵列中删除。我已经尝试过in_array,但我认为它仅适用于1级数组。

有什么简单的方法可以做到吗?我正在尝试,我已经在执行4 foreach了,我认为那会带来非常糟糕的表现!

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [CodColaborador] => 2159
                    [Nome] => Graça
                    [Sobrenome] => Almeida
                    [Ativo] => 1
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [CodColaborador] => 2159
                    [Nome] => Graça
                    [Sobrenome] => Almeida
                    [Ativo] => 1
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [CodColaborador] => 681
                    [Nome] => Gonçalo Homem
                    [Sobrenome] => de Almeida Correia
                    [Ativo] => 1
                )

            [1] => Array
                (
                    [CodColaborador] => 2159
                    [Nome] => Graça
                    [Sobrenome] => Almeida
                    [Ativo] => 1

                )

        )
..........
php
1个回答
0
投票

我需要检查所有重复的CodColaborador并将其从阵列中删除。

我不知道您是否要建立一个新的多维数组,在下面的代码中,我假设您是要从保存有关联键的多维数组中删除它。

尝试以下操作:

$exists = [];

foreach($array as $k => $values) {

    foreach($values as $k => $v) {

        if(in_array($v['CodColaborador'], $exists)) unset($values[$k]);

        $exists[] = $v['CodColaborador'];

    }

}
© www.soinside.com 2019 - 2024. All rights reserved.