PHP中的多维数组合并
请求您的帮助,关于如何合并多维关联数组,如下所示,尝试了下面的函数,每个函数都给出了不同的错误输出,所需的输出如下所示。所有数组的键[Server]名称保持不变,但值不同 功能 阵列1: 阵列2: 阵列3: 所需阵列输出 从, Vino您可以按服务器为它们编制索引,然后它们将合并到同一个密钥中:PHP中的多维数组合并,php,arrays,Php,Arrays,请求您的帮助,关于如何合并多维关联数组,如下所示,尝试了下面的函数,每个函数都给出了不同的错误输出,所需的输出如下所示。所有数组的键[Server]名称保持不变,但值不同 功能 阵列1: 阵列2: 阵列3: 所需阵列输出 从, Vino您可以按服务器为它们编制索引,然后它们将合并到同一个密钥中: $output = array_merge(array_column($array1, null, 'Server'), array_column($arra
$output = array_merge(array_column($array1, null, 'Server'),
array_column($array2, null, 'Server'),
array_column($array3, null, 'Server'));
不需要,但如果要返回整数键,请执行以下操作:
$output = array_values($output);
要添加缺少的键,您必须合并到模板数组中:
$keys = ['Server' => 0, 'Count' => 0, 'Rack' => 0, 'Node' => 0];
foreach($output as &$values) {
$values = array_merge($keys, $values);
}
Hi Cadaver,感谢您的帮助,使用您的代码生成的输出与预期的不一样,请参阅上面的必需数组OutputHi Cadaver,如果服务器值不同,则上面的代码可以完美工作,如果服务器值相同,则只需更新为0而不是正确的值错误输出[1]=>Array[Server]=>Server2[Count]=>4[Rack]=>1[Node]=>1[4]=>Array[Server]=>Server5[Count]=>0[Rack]=>4[Node]=>4正确输出[1]=>Array[Server]=>Server2[Count]=>0[Node]=>0[Rack]=>1[4]=>Array[Server]=>Server5[Count]=>0[Rack]=>0[Node]=>4
Array
(
[0] => Array
(
[Server] => Server2
[Node] => 1
)
[1] => Array
(
[Server] => Server5
[Node] => 4
)
[2] => Array
(
[Server] => Server6
[Node] => 4
)
)
Array
(
[0] => Array
(
[Server] => Server1
[Count] => 1
[Rack] => 0
[Node] => 0
)
[1] => Array
(
[Server] => Server2
[Count] => 4
[Rack] => 1
[Node] => 1
)
[2] => Array
(
[Server] => Server3
[Count] => 4
[Rack] => 0
[Node] => 0
)
[3] => Array
(
[Server] => Server4
[Count] => 0
[Rack] => 4
[Node] => 0
)
[4] => Array
(
[Server] => Server5
[Count] => 0
[Rack] => 4
[Node] => 4
)
[5] => Array
(
[Server] => Server6
[Count] => 0
[Rack] => 0
[Node] => 4
)
)
$output = array_merge(array_column($array1, null, 'Server'),
array_column($array2, null, 'Server'),
array_column($array3, null, 'Server'));
$output = array_values($output);
$keys = ['Server' => 0, 'Count' => 0, 'Rack' => 0, 'Node' => 0];
foreach($output as &$values) {
$values = array_merge($keys, $values);
}