从php中的数组中删除重复键

时间:2016-01-13 19:48:34

标签: php arrays sorting duplicates

我有这个数组,我想从中删除重复的键。

Array
(
[8] => Array
    (
        [7] => one name
        [27] => Array
            (
                [27] => Array
                    (
                        [31] => other name
                    )

            )

        [10] => Array
            (
                [10] => Array
                    (
                        [24] => Array
                            (
                                [24] => Array
                                    (
                                        [30] => some name
                                    )

                            )

                    )
            )
    )

)

我想删除前27个,前10个和前24个,我该怎么办?

结果应该是这样的

只需删除重复的密钥

即可
Array
(
[8] => Array
(
    [7] => one name

    [27] => Array
        (
            [31] => other name
        )

    [10] => Array
        (
            [24] => Array
                (
                    [30] => some name
                )
        )
)

)

我通过构建循环函数来获得此结构

1 个答案:

答案 0 :(得分:0)

我并不完全明白这个数组是什么结果,这个输出都不是用来做什么的。但无论如何,这是一个简单的递归算法,可以满足您的需求。顺便说一下,PHP中没有特定的东西。

function remove_duplicates(&$array){
    foreach($array as $key => &$val){

        if(is_array($val)){
            if(count($val) == 1 && array_keys($val)[0] == $key){
                $val = $val[$key];
            }

            remove_duplicates($val);

        }
    }
}

请参阅测试运行here

相关问题