我有一个对象数组,这些对象都是同一个对象。但最后我需要将对象的所有这些值放入单个对象中。这些是我的对象。
数组( [0] => 权限对象 ( [模块] => 数组 ( [0] => 3 [1] => 4 ) [子模块] => 数组 ( ) [操作] =>数组 ( [3M] => 阵列 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [4M] => 阵列 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) ) ) [1] => 权限对象 ( [模块] => 数组 ( [0] => 1 [1] => 3 ) [子模块] => 数组 ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 7 [5] => 8 ) [操作] =>数组 ( [1] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [2] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [3] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [4] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [7] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [8] => 数组 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) [3M] => 阵列 ( [0] => 创建 [1] => 读取 [2] => 更新 [3] => 删除 ) ) ))
如果不想
使用 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;
}
}
在合并之前或之后,您只需删除重复值。
$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
)
)
)