2009-11-01 58 views
0

我試圖爲PEAR生成使用Image_GraphViz的以下圖表。但它僅在頂級節點下方顯示頂級節點(文本「0」)和子節點「1」,「2」,「3」和「4」。我錯過了什麼嗎?如何使用GraphViz(Image_Graphviz接口,用於PHP)生成多個級別

這是代碼:

$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。我很困惑,有什麼建議嗎?

回答

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'); 
+0

我已經想通了,並得到它的工作。儘管謝謝你的回答! – Ropstah 2009-11-02 14:41:52