Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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_Recursion_Traversal - Fatal编程技术网

如何在PHP中遍历邻接列表?

如何在PHP中遍历邻接列表?,php,arrays,recursion,traversal,Php,Arrays,Recursion,Traversal,让我们看一下表类别,作为我想要理解的概念的示例: ID NAME PARENT_ID 1 catA 0 2 catB 0 3 childA 1 4 childC 3 这里只有一点数据结构。现在,您有了一个哈希表,它有可能让孩子们永远活下去,这可能会成为PHP对于数组已经有些低效的哈希表结构的噩梦。我的建议是简单地将每个项都设置为自己的数组元素,并指定一个父项。这使它更容易,因为您知道您只能有一个家长或根本没

让我们看一下表
类别
,作为我想要理解的概念的示例:

ID NAME PARENT_ID 1 catA 0 2 catB 0 3 childA 1 4 childC 3
这里只有一点数据结构。现在,您有了一个哈希表,它有可能让孩子们永远活下去,这可能会成为PHP对于数组已经有些低效的哈希表结构的噩梦。我的建议是简单地将每个项都设置为自己的数组元素,并指定一个父项。这使它更容易,因为您知道您只能有一个家长或根本没有家长,但每个家长可以有多个孩子

array (
    0 => array(
        'name' => 'Blah',
        'parent' => false,
    )

    1 => array(
        'name' => 'Blah\'s first child',
        'parent' => 0,
    )

    2 => array(
        'name' => 'Blah\'s second child',
        'parent' => 0,
    )

    3 => array(
        'name' => 'Foo',
        'parent' => false,
    )

    4 => array(
        'name' => 'Bar',
        'parent' => 3,
    )
)

请看一看,谢谢看。是123,为什么要评论?!谢谢你的关注。如果你想从中得到一个菜单,比如说父母子女子女子女子女子女,你知道,你会怎么做?这是否意味着,这个问题只能通过递归函数来解决?
array (
    0 => array(
        'name' => 'Blah',
        'parent' => false,
    )

    1 => array(
        'name' => 'Blah\'s first child',
        'parent' => 0,
    )

    2 => array(
        'name' => 'Blah\'s second child',
        'parent' => 0,
    )

    3 => array(
        'name' => 'Foo',
        'parent' => false,
    )

    4 => array(
        'name' => 'Bar',
        'parent' => 3,
    )
)