0

我正在尝试使用 Image_GraphViz for PEAR 生成下图。然而,它只显示一个顶级节点(带有文本“0”)和子节点“1”、“2”、“3”和“4”直接位于顶级节点下方。我错过了什么吗?

这是代码:

    $gv = new Image_GraphViz(true);

    $gv->addEdge(array('1', '2'));
    $gv->addEdge(array('2', '3'));
    $gv->addEdge(array('2', '4'));
    $gv->addEdge(array('3', '5'));
    $gv->addEdge(array('3', '6'));
    $gv->addEdge(array('3', '7'));
    $gv->addEdge(array('4', '5'));

    echo $gv->fetch('svg');

我尝试了以下方法,但这显然是错误的:)。

    $gv->addEdge(array('1', '2'));
    $gv->addEdge(array('1', '2', '3'));
    $gv->addEdge(array('1', '2', '4'));
    $gv->addEdge(array('1', '2', '3', '5'));
    $gv->addEdge(array('1', '2', '3', '6'));
    $gv->addEdge(array('1', '2', '3', '7'));
    $gv->addEdge(array('1', '2', '4', '5'));

我知道有two ways to get to 5。通过(1, 2, 3, 5)和/或(1, 2, 4, 5)

图像应该只显示两行到5。我很困惑,有什么建议吗?

4

1 回答 1

1

从文档看来,您需要关联数组。你可以试试这个吗?

$gv = new Image_GraphViz(true);

// Notice the use of =>
$gv->addEdge(array('1' => '2'));
$gv->addEdge(array('2' => '3'));
$gv->addEdge(array('2' => '4'));
$gv->addEdge(array('3' => '5'));
$gv->addEdge(array('3' => '6'));
$gv->addEdge(array('3' => '7'));
$gv->addEdge(array('4' => '5'));

echo $gv->fetch('svg');
于 2009-11-02T14:11:22.453 回答