繁体   English   中英

如何在Codeigniter中将两个对象的值合并为一个对象

[英]How to merge the values of two objects into one object in codeigniter

我有一个对象数组,所有对象都是同一对象。 但是最后我需要将一个对象的所有这些值放入单个对象中。这些是我的对象。

Array
(
    [0] => Permissions Object
        (
            [modules] => Array
                (
                    [0] => 3
                    [1] => 4
                )

            [submodules] => Array
                (
                )

            [operations] => Array
                (
                    [3M] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [4M] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                )

        )

    [1] => Permissions Object
        (
            [modules] => Array
                (
                    [0] => 1
                    [1] => 3
                )

            [submodules] => Array
                (
                    [0] => 1
                    [1] => 2
                    [2] => 3
                    [3] => 4
                    [4] => 7
                    [5] => 8
                )

            [operations] => Array
                (
                    [1] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [2] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [3] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [4] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [7] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [8] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                    [3M] => Array
                        (
                            [0] => Create
                            [1] => Read
                            [2] => Update
                            [3] => Delete
                        )

                )

        )

)

合并之前或之后,您只需要删除重复的值即可。

$array1 = [ 
        "modules" => [ 
            0 => 2, 1 => 4
            ], 
        "submodules" => [
            "3m" => [
                0 => "create", 1 => "read"
                ], 
            "4m" => [0 => "create", 1 => "read"
                ]
        ]
    ];

$array2 = [ 
    "modules" => [ 
        0 => 1, 
        1 => 3
        ], 
    "submodules" => [
        "1m" => [
            0 => "create", 1 => "read"
            ], 
        "10m" => [
            0 => "create", 1 => "read"
            ]
    ]
];

$merged = array_merge_recursive($array1, $array2);
print_r($merged);

Array ( [modules] => Array ( 
[0] => 2 [1] => 4 [2] => 1 [3] => 3 
) 
[submodules] => Array ( 
[3m] => Array ( [0] => create [1] => read 
    ) 
[4m] => 
    Array ( [0] => create [1] => read 
        ) 
[1m] => Array (
    [0] => create [1] => read 
    ) 
[10m] => Array ( 
[0] => create [1] => read 
    ) 
) 

如果您不想使用array_merge,则可以使用以下解决方法:

$global; //your array
$merged = array(); //the array you want with the merged objects
foreach ($global as $k => $object) {
    foreach ($object as $key => $values) {
        foreach ($values as $val)
            $merged[$key][] = $val;
    }
}

暂无
暂无

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

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