1

嗨,我正在寻找一种从 php 数组创建 GraphViz 图的方法。我有一个关联多维数组,我需要从中提取键及其对应的值,并使用它们来创建图形。一维数组的示例:

$arr = ("dogs" => "4", "cats" => "3"); 

我需要提取关键“狗”并将其用作点头的标签,并提取相应的值“4”并以某种方式使用它来定义该点头的大小。我需要对多维数组做同样的事情。只是一个愚蠢的例子:

$md_arr = ("dogs" => array("rot" => "7", "blood_hound" => "4"), 
           "cats" => array("long_hair" => "12", "some_other_kind" => "1")
          );

我需要像这样定义输出:

第一个节点的名称/标签:第一个数组的第一个键=>“dogs”第二个节点的名称/标签:第二个数组的第一个键=>“rot”,该节点的大小是相应键的值- 在这种情况下为“7”。

我还需要知道如何将变量从我的 array_script.php(创建我的 MD 数组的脚本)传递到将创建图形的新脚本。我尝试将用于创建图形的示例代码放入我的 php 脚本中,输出是一条警告消息,说明:

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\test\hare.php:1) in C:\xampp\php\PEAR\Image\GraphViz.php on line 174

谁能帮我解决这个问题?

4

1 回答 1

1

我自己想出来了:) 链接诀窍是使用 addNode 函数。就我而言,我需要使用动态填充的 MD 数组中的数据创建动态图。所以你只需要用一个包含你需要的数据的变量来命名节点。我还需要通过变量的值设置标签,所以这里是代码: $graph->addNode($var1, array('label' => $var1)); $graph->addNode($var2, array('label' => $var2)); $graph->addEdge(array($var1 => $var2)) 如果 var 名称相同但值不同则有效

派对迟到了 6 年,但是,嘿!我向社区道歉。我不知道 6 年前发生了什么。

于 2018-02-01T08:27:21.283 回答