gpt4 book ai didi

php - 将树状对象结构转换为数组并交互整个事物

转载 作者:可可西里 更新时间:2023-11-01 00:52:55 24 4
gpt4 key购买 nike

我有一个树状对象结构,由两种类型的对象组成:

  1. 类别的对象
  2. CategoryLink 的对象

结构如下:

整个故事开始于一个没有父级类别数组每个 Category 都有一些不重要的属性和一些重要的属性:
$parent - 包含父 Category 的 id,
$children - 包含子类别的数组(当然,如果类别没有子项,则可能为空)。
$links - 包含 CategoryLinks 数组(也可能为空)

__constructing 一个 Category 时,我寻找现有的子 CategoriesCategoryLinks,如果有一些,我创建了它们的实例并将它们添加到 $children$links,所以这个过程对 child 和他们的 child 重复,依此类推,直到没有 child 的类别到达。

所以这个过程所做的是它基本上创建了一个 Categories 及其 Links 树。这很顺利,直到我想输出这个树结构(使用 Smarty),我不太确定如何以正确的方式迭代它。期望的输出是这样的

Parent1 -its unimportant properties
-Child1 - its unimportant properties
-Child2 -...
-Child2's Child1
-Child2's Child2
-Child3
Parent2
-Child1
-Child1's Child1
-Child2
Parent3
...

我不确定在 PHP 中迭代它并将其转换为多维数组并在 Smarty 中迭代它是否更好,或者在 Smarty 中一直这样做。

*请注意,我没有提到类 CategoryLink 的对象,因为 Category 可能只包含它们的一维数组,所以遍历它们相当容易,我只是不确定如何遍历整个结构。

什么是最好的 |这样做的正确方法?

最佳答案

树有助于非常优雅的递归操作。在这种情况下,您描述的是深度优先预序遍历。 Wikipedia page可能有用。至于其余部分,如果这是最简单的显示方式,将其放入多维数组听起来就足够明智了。

关于php - 将树状对象结构转换为数组并交互整个事物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3301550/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com