【发布时间】:2019-12-04 19:12:04
【问题描述】:
我正在尝试根据存储在二维数组中的值设置 KendoUI 提供的 Treeview。不幸的是,我无法全神贯注地创建数据源,它应该是 JavaScript 中使用的多维数组。
计划是递归读取二维数组,并在PHP中将数据源逐个构造为字符串,然后将其传递给JavaScript函数。
二维数组的一个例子: (第一维的关键是父元素的“名称”; 子元素的键是整数,值是子元素的“名称”)
Array
(
[1] => Array
(
[0] => 2
[1] => 3
[2] => 4
)
[2] => Array
(
[0] => 3
)
[3] => Array
(
[0] => 3
[1] => 1
)
[4] => Array
(
[0] => 2
)
)
它应该是什么样子的一个例子是这样的(有两个值):
dataSource: [
{ text: "1", items: [
{ text: "2", items: [
{ text: "3" }
]},
{ text: "3" , items: [
{ text: "3" },
{ text: "1" }
]},
{ text: "4", items: [
{ text: "2", items: [
{ text: "3", items: [
{ text: "3" },
{ text: "1" }
] }
] }
] }
] },
{ text: "2", items: [
{ text: "3", items: [
{ text: "3" },
{ text: "1" , items: [
{ text: "1" },
{ text: "3" },
{ text: "4", items: [
{ text: "2" }
] }
] }
] }
] }
]
我知道我必须考虑算法中的无限循环。从树的“叶”到“根”的直接路径最多只能包含单个值的 2 个实例。 如果满足该条件,则该分支将被放弃并且不应再填充。
任何人都可以给我一些正确方向的指示吗? 有没有一些 PHP 类可以用来简化这个问题?
【问题讨论】:
-
你能展示一下你到目前为止所做的代码吗?
-
你想在 PHP 中还是在 JS 中进行这种转换?
标签: javascript php recursion multidimensional-array datasource