【发布时间】:2015-11-30 04:02:27
【问题描述】:
我想创建 MLM 类型的树结构。我有数组 ARR 及其所有子数组,并且 ARR 数组再次包含其中存在的所有子数组。
示例:
ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val');
ARR['child1'] = array('subchild1'=>'subchild1 val');
ARR['child2'] = array('...'=>'...');
ARR['subchild1'] = array('...'=>'...');
等等……
我想递归循环所有这些数组,而不使用任何函数(如果可能)来获取并打印其所有子子项,直到打印所有子项。
在以下示例中,parsedAllSpurs 数组包含所有子子项,就像这里的 ARR 数组一样。
tmpHN = spurs.hostname;
while(typeof(parsedAllSpurs[tmpHN]) !== 'undefined'){
if(typeof(parsedAllSpurs[tmpHN]) !== 'undefined'){
$.each(parsedAllSpurs[tmpHN], function(k, allSpurs){
tmpHN1 = allSpurs.hostname;
log(tmpHN1);
log(allSpurs);
while(typeof(parsedAllSpurs[tmpHN1]) !== 'undefined'){
if(typeof(parsedAllSpurs[tmpHN1]) !== 'undefined'){
$.each(parsedAllSpurs[tmpHN1], function(j, allSpurs1){
tmpHN2 = allSpurs1.hostname;
//log(tmpHN2);
log(allSpurs1);
while(typeof(parsedAllSpurs[tmpHN2]) !== 'undefined'){
if(typeof(parsedAllSpurs[tmpHN2]) !== 'undefined'){
$.each(parsedAllSpurs[tmpHN2], function(l, allSpurs2){
tmpHN2 = allSpurs2.hostname;
log(allSpurs2);
})
}
}
tmpHN1 = allSpurs1.hostname;
});
}
}
tmpHN = allSpurs.hostname;
});
}
【问题讨论】:
-
你的代码在函数内吗?
-
我并没有真正了解您的
parsedAllSpursJavaScript 对象的结构。你能在你的代码中包含一个例子吗?喜欢var parsedAllSpurs = <something here>。spurs.hostname来自哪里?spurs变量是什么? -
下面是parsedAllSuprs的结构,但是它的PHP数组,后来转成json对象
array ( 'MIBHRAWLESR001' => array ( 0 => array ( 'hostname' => 'MIBHVENKESR001' 'media_type' => 'Microwave' ) 1 => array ( 'hostname' => 'ABCDEF000' 'media_type' => 'Microwave' ) 2 => array ( 'hostname' => 'MIBHSLSRESR001' 'media_type' => 'Microwave' ) ) ) -
我的代码不在函数@aldrin27中
-
我看不到该数组中任何元素之间的连接。您能否提供有关数组的更完整示例(请将其包含在您的问题中,而不是作为评论)?如果您想要一个 JavaScript 解决方案,我想最好将示例编写为 JavaScript 对象。或者你想要一个 PHP 解决方案吗?
标签: javascript php arrays recursion iteration