【发布时间】:2015-04-01 03:33:21
【问题描述】:
好的,所以这有点棘手,我碰壁了。
我拥有的是一组分组选项:
Array
(
[0] => Array
(
[9] => sum
[10] => sum
[11] => avg
)
[4] => Array
(
[9] => sum
[10] => sum
[11] => avg
)
[9] => Array
(
[9] => sum
[10] => sum
[11] => avg
)
)
我想要得到的是一个如下所示的数组:
Array
(
[0] => Array
(
[4] => Array
(
[9] => Array
(
[9] => sum
[10] => sum
[11] => avg
)
)
)
)
我这个例子只显示了 3 个层次,但我需要它是动态的,因为会有不同的分组选项可用。有些只有 1 个级别,这很容易,但也会有 2 个或更多。嵌套级别应始终具有与父级别相同的键。
我正在做的是使用它来迭代数据。键是我正在分组的数据数组中的索引。问题是,我需要较低级别的分组来了解其他索引,因为这是对多个数据集进行正确分组所必需的。这是为了尝试简化处理大型数据集。我只需要计算最低级别(在此示例中为 9),因此我可以遍历最终数组来计算每个父分组的分组数据。我将使用关键 9 数据来构建关键 4 数据和关键 4 数据来构建关键 0 数据。键需要了解父组的原因是数据对于父组是唯一的。 $a[0][4][9] 与 $a[0]、$a[4]、$a[9] 不同。我需要 9 才能知道它依赖于 4 而 4 依赖于 0。
我不确定 PHP 是否可以做到这一点,或者这是否有意义。你能像这样动态构建一个数组吗?
【问题讨论】:
-
为什么会得到上面的数组,为什么要换成下一个数组?键会改变其他值吗?
-
我们是否需要检查子数组是否相同?这些树会比你展示的更复杂吗?
-
@RyanVincent 如果它们不相同,您将无法获得 OP 想要的输出
-
它们应该是相同的,基本上,父组将对每个子组的数据进行求和或平均。而最低的孩子是唯一处理所有数据的孩子。原始数组是用户选择的分组选项传递的参数。我需要获取该数组并在上面构建所需的数组。
标签: php arrays algorithm multidimensional-array