Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript数组创建MLM类型树结构_Javascript_Php_Arrays_Recursion_Iteration - Fatal编程技术网

使用javascript数组创建MLM类型树结构

使用javascript数组创建MLM类型树结构,javascript,php,arrays,recursion,iteration,Javascript,Php,Arrays,Recursion,Iteration,我想创建传销类型树结构。我有一个数组ARR及其所有子数组,同样ARR数组包含其中存在的所有子数组 示例: ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val'); ARR['child1'] = array('subchild1'=>'subchild1 val'); ARR['child2'] = array('...'=>'...'); ARR['subchild1'] = ar

我想创建传销类型树结构。我有一个数组ARR及其所有子数组,同样ARR数组包含其中存在的所有子数组

示例:

ARR['MainArr'] = aray('child1'=>'child1 val', 'child2'=>'child2 val');

ARR['child1'] = array('subchild1'=>'subchild1 val');

ARR['child2'] = array('...'=>'...');

ARR['subchild1'] = array('...'=>'...');
等等

我希望递归地循环所有这些数组,而不使用任何函数(如果可能的话)来获取和打印它的所有子孩子,直到打印所有孩子

在下面的示例中,
parsedAllSpurs
array包含所有的子元素,就像这里的
ARR
array一样

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;
        });
    }

在嵌套循环上使用递归。 创建用于一个级别的函数,并在每次找到嵌套结构时调用此函数

function processStructure(data){
    processData(data);
    if(hasChildren(data)){
        processStructure(data);
    }
}
processStructure(initialData);

希望这有帮助。

在嵌套循环上使用递归。 创建用于一个级别的函数,并在每次找到嵌套结构时调用此函数

function processStructure(data){
    processData(data);
    if(hasChildren(data)){
        processStructure(data);
    }
}
processStructure(initialData);

希望这有帮助。

你的代码在函数中吗?我不太了解你的
parsedAllSpurs
JavaScript对象的结构。你能在你的代码中包含一个这样的例子吗?比如
var parsedAllSpurs=
。那么,
spurs.hostname
从何而来?什么是
spurs
变量?下面是parsedAllSuprs的结构,但它的PHP数组后来被转换成json对象
array('mibHRawles001'=>array(0=>array('hostname'=>'MIBHVENKESR001''media_type'=>Microwave')1=>array('hostname'=>'ABCDEF000''介质类型'=>'Microwave')2=>阵列('hostname'=>'MIBHSLSRESR001''介质类型'=>'Microwave'))
My code不在函数@aldrin27I中,我看不到该数组中任何元素之间的连接。能否提供一个更完整的数组示例(请将其包含在您的问题中,而不是作为注释)?如果你想要一个JavaScript解决方案,我想最好把这个例子写成一个JavaScript对象。或者你想要一个PHP解决方案吗?你的代码在函数中吗?我真的不知道你的
parsedAllSpurs
JavaScript对象的结构。你能在你的代码中包含一个这样的例子吗?比如
var parsedAllSpurs=
。那么
spurs.hostname
从何而来?spurs变量是什么?下面是parsedAllSuprs的结构,但它的PHP数组后来被转换成json对象
数组('mibhrawlessr001'=>array(0=>array('hostname'=>'MIBHVENKESR001''媒体类型'=>'Microwave')1=>阵列('hostname'=>'ABCDEF000''媒体类型'=>'Microwave')2=>阵列('hostname'=>'MIBHSLSRESR001''媒体类型'=>'Microwave'))
My code不在函数@aldrin27I中,我看不到该数组中任何元素之间的连接。能否提供一个更完整的数组示例(请将其包含在您的问题中,而不是作为注释)?如果你想要一个JavaScript解决方案,我想最好把这个例子写成一个JavaScript对象。或者你想要一个PHP解决方案吗?我们不能不使用函数吗,就像我们可以使用while或foreach一样?你的例子中的每一个都创建匿名函数,一个函数有什么问题?你的代码包含复制粘贴,什么t如果你还有一个级别?你会再次复制它吗?如果你需要添加数据处理之后呢?你会将它写入每个函数吗?我们不能在不使用函数的情况下这样做吗,就像我们可以使用while或foreach一样?在你的示例中,每个函数都创建匿名函数,一个函数有什么问题吗?你的代码包含复制粘贴,如果您还有一个级别呢?您将再次复制它?如果在您需要添加数据处理之后呢?您将把它写入每个函数?