如何从数组格式化族谱

时间:2017-04-07 00:39:54

标签: php css arrays

我正在尝试创建一个谱系,我已经有了构建和显示数据的功能,我只是不确定如何在输出上正确格式化。

我正在尝试使用此css / html http://jsfiddle.net/bZGFA/32/

树信息的数组输出如下所示:

Array(
 [id] => IJ6wF
 [mother] => Array (
     [id] => BzOqN
     [mother] => Array (
         [id] => 1G3Pl
         [mother] => 
         [father] =>
     )
     [father] => Array (
         [id] => xWDlH
         [mother] => 
         [father] =>
     )
 )
 [father] => Array (
     [id] => Rstov
     [mother] =>
     [father] =>
 )
)

我正在使用递归函数来构建数组。我正在使用我在stackoverflow上找到的以下函数来显示数组。

function displayArrayRecursively($arr, $indent='') {
    if ($arr) {
        foreach ($arr as $value) {
            if (is_array($value)) {
                //
                displayArrayRecursively($value, $indent . '--');
            } else {
                //  Output
                if (!empty($value)) {
                    echo "$level $indent $value \n";
                }
            }
        }
    }
}

我迷失在如何配置构建表的功能上。任何帮助都会很棒。谢谢!

1 个答案:

答案 0 :(得分:0)

printTree($array) {
    $out = "<li>" . "<a href='#'>". $array["id"] . "</a>";

    if (array_key_exists("mother", $array) || array_key_exists("father", $array)) {

        $out .= "<ul>";

        if (array_key_exists("mother", $array)) {
            $out .= printTree($array["mother"]);
        }

        if (array_key_exists("father", $array)) {
            $out .= printTree($array["father"]);
        }

        $out .= "</ul>";
    }

    $out .= "</li>";

    return $out;
}

在html使用中:

<ul class="tree desc3">
    <?php echo printTree($array); ?>
</ul>