【问题标题】:remove duplicates key from array in php从php中的数组中删除重复键
【发布时间】:2016-04-18 23:04:57
【问题描述】:

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

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
                )
        )
)

)

我通过构建循环函数得到了这个结构

【问题讨论】:

  • 你能显示预期的结果吗? BTW,你是怎么得到这个数据结构的?

标签: php arrays sorting duplicates


【解决方案1】:

我不完全理解这个数组是什么的结果,也不是这个输出用于什么。但无论如何,这是一个简单的递归算法,可以满足您的需求。顺便说一句,其中没有特定的 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

【讨论】:

    猜你喜欢
    • 2018-01-18
    • 2022-12-03
    • 2021-09-18
    • 1970-01-01
    • 2021-04-02
    • 2011-02-21
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多