создать график graphviz, используя массивы md из php - PullRequest
1 голос
/ 20 октября 2011

Hy, я ищу способ создания графика GraphViz из массивов php. У меня есть ассоциативный многомерный массив, из которого мне нужно извлечь ключи и их соответствующие значения, и использовать их для создания графика. Пример по 1D массиву:

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

Мне нужно извлечь ключ «dogs» и использовать его в качестве метки узла, извлечь соответствующее значение «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

Может кто-нибудь помочь мне с этим?

1 Ответ

1 голос
/ 01 февраля 2018

Я понял это самостоятельно :) Ссылка хитрость заключается в использовании функции addNode. В моем случае мне нужно было создать динамический граф, используя данные из динамически заполненного массива MD. Поэтому вам просто нужно присвоить узлу переменную, содержащую нужные вам данные. Мне также нужно было установить метку по значению переменной, так вот код: $ graph-> addNode ($ var1, array ('label' => $ var1)); $ graph-> addNode ($ var2, array ('label' => $ var2)); $ graph-> addEdge (array ($ var1 => $ var2)) работает, если имена переменных совпадают, но значения отличаются.

6 лет опоздал на вечеринку, но эй! Я извиняюсь перед сообществом. Понятия не имею, что происходило 6 лет назад.

...