【问题标题】:Adding nested children inside parent and nesting should be equal to number of elements in an array在父级和嵌套中添加嵌套的子级应等于数组中的元素数
【发布时间】:2019-10-30 11:20:00
【问题描述】:

我必须生成一个嵌套的父子数组。基本上,我有一个如下列表。

$changeLog = array(
    array("data1" => "value1"),
    array("data2" => "value2"),
    array("data3" => "value3")
)

对于$changeLog 的每个值,我必须在数组中添加一个嵌套子项。因此,例如,我在 changeLog 中有 3 个值,预期结果应该如下:

$finalResult = array(
        "parent1" => "value1",
        "child" => array(
           "parent2" => "value2",
           "child" => array(
                 "parent3" => "value3",
                 "child" => array(
                      "parent4" => "value4"
                  )
           )
        )
    )

因此,简而言之,对于$changeLog 中的每个值(基本上是一个数组,我必须从该数组中获取一些将在嵌套子项中使用的值),将添加一个嵌套子项。我也尝试使用递归和 for 循环来做到这一点。但是我完全迷失了如何进行。有人可以给我一个提示我们如何实现它吗?

【问题讨论】:

    标签: php recursion nested-loops


    【解决方案1】:

    我喜欢尽可能简单的数据结构。 使用大型嵌套数组也总是很复杂。

    我建议将 $finalResult 变量的格式更改为以下(使用某种没有多维数组的树结构):

    $finalResult = [
        "1" => "value1",
        "1.2" => "value2",
        "1.2.3" => "value3",
        "1.2.3.4" => "value4"
    ];
    

    在这种情况下,数组键“1”是 parent1 的唯一 ID 和路径。

    数组键“1.2”是parent2的唯一路径,“2”是parent2的ID。

    数组键“1.2.3”是parent3的唯一路径,“3”是parent3的ID。

    数组键“1.2.3.4”是parent4的唯一路径,“4”是parent4的ID。

    等等……

    在这种情况下,您可以简单地访问元素,您可以通过键对数组进行排序。

    还有 f.ex。数组键“1.2.3.4”显示它是 ID 为“4”的 parent4,它是 ID 为“1”、“2”和“3”的父母的孩子

    在数组键“1.2.3.4”中,最后一个点之后的最后一个数字是唯一ID,最后一个点之前的所有内容都显示所有父母的ID。

    【讨论】:

      猜你喜欢
      • 2020-03-17
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 2018-08-06
      相关资源
      最近更新 更多