Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
Php 深度嵌套数组/对象的含义,以及建议使用的语言/数据模型_Php_Arrays_Json_Object_Javascript Objects - Fatal编程技术网

Php 深度嵌套数组/对象的含义,以及建议使用的语言/数据模型

Php 深度嵌套数组/对象的含义,以及建议使用的语言/数据模型,php,arrays,json,object,javascript-objects,Php,Arrays,Json,Object,Javascript Objects,我已经开发出生成单个epic阵列的需求。一开始看起来相当标准,比如: epic = { 0 : "epic parent" 1 : { 0 : "bob child", 1 : { 0 : "mary grand-child", 1 : { 0 : "jane great-grand-child", etc. (e.g. down to

我已经开发出生成单个epic阵列的需求。一开始看起来相当标准,比如:

epic = {
    0 : "epic parent"
    1 : {
        0 : "bob child",
        1 : {
            0 : "mary grand-child",
            1 : {
                0 : "jane great-grand-child",
                etc. (e.g. down to "john (great*1000)-grand-child")
            }
        },
        2 : {
            etc.
        }
    },
    2 : {
        etc.
    }
    etc.
}
但问题是,它有潜力发展到巨大的深度。很可能深入到数百甚至数千层,当然也可能非常广泛。原因是,任何一个新条目都可以作为任何现有点的直接子条目添加,无论是
epic[1]
还是
epic[1][21][41][661][3][72][8543][22][1][2][等。]

我的问题是,像这样构建一个“史诗”阵列意味着什么?不同语言处理大/深数组的方式是否存在差异?有些语言比其他语言更适合这种情况吗?如何最好地存储此阵列

举例说明这一点的最简单方法可能是想象一下,将一个完整的家谱存储在一个数组中,从一个人开始,数百代人(还可以想象每个“父母”可以有无限多个孩子,而不是2.5个:)


目前我对数组的唯一接触是php和javascript,因此它们将是一个很好的起点。

这是一个非常普遍的问题,无法以正确的方式回答。当然,不同的语言处理数组的方式不同,php使用hashmaps(例如,与c/c++相比速度非常慢),javascript AFAIK使用普通数组(因此,它们的性能应该与c/c++相当),java使用普通数组、hashmaps、LinkedList等等

第二部分是关于存储这样的数据(我假设是数据库),在关系数据库(mysql)中,您可以将它们存储为树(参见),或者您可以通过2个表(person,link table)进行多对多链接

在任何情况下-您的问题的主要答案将在深入调查您计划执行的操作时找到-这将定义您应该使用的数据结构以及将此结构存储到磁盘的方式

如果我们假设“家谱”——你想用它做什么?只是显示,或者搜索,或者一些统计结果(比如这个家庭每年出生多少个儿子?),也许我们需要计算两个不同的人(比如表亲)之间的关系,等等

注意:不要忘记,一个孩子可以有两个以上的父母(如果是继父和神父)