【问题标题】:PHP generate a tree by specified depth and rulesPHP按指定深度和规则生成树
【发布时间】:2018-04-11 05:07:42
【问题描述】:

我被树生成算法困住了:

  • 没有父子参数,只有起始节点值
  • 每个节点都有 2 个子节点(最后一个子节点除外)

数组示例:

$start = 1;
$depth = 3;

$s = array(

    'name'     => 1,                   // taken from $start
    'children' => array(

        array(
            'name'    => 2,
            'children => array(
                array( 'name' => 3 ),  /* No children for last node $depth */
                array( 'name' => 3 ),  /* No children for last node $depth */
            )
        ),

        array(
            'name'    => 2,
            'children => array(
                // same as above
            )
        ),

    )
);

在这一点上,我提出了一个非常丑陋的函数,如果有任何帮助或建议来构建更好的算法,我将不胜感激。

【问题讨论】:

    标签: php tree


    【解决方案1】:

    这应该会有所帮助

    function generateTree($depth, $level = 0)
    {
        $result = array();
        if ($depth == $level) {
            $result = array('name' => $level);
        } else {
            $result = array('name' => $level, 'children' => array(generateTree($depth, $level + 1), generateTree($depth, $level + 1)));
        }
        return $result;
    }
    
    print_r(generateTree(3, 1));
    

    【讨论】:

      猜你喜欢
      • 2014-12-04
      • 2011-10-04
      • 1970-01-01
      • 2018-04-02
      • 2019-10-01
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多