Создать график graphviz, используя массивы md из php
Hy, я ищу способ создания графика GraphViz из массивов php. У меня есть ассоциативный многомерный массив, из которого мне нужно извлечь ключи и их соответствующие значения, и использовать их для создания графика. Пример по массиву 1D:
$arr = ("dogs" => "4", "cats" => "3");
Мне нужно извлечь ключ "псы" и использовать его в качестве метки узла, извлечь соответствующее значение "4" и каким-то образом использовать его для определения размера этого узла. Мне нужно сделать то же самое с многомерными массивами. Просто глупый пример:
$md_arr = ("dogs" => array("rot" => "7", "blood_hound" => "4"),
"cats" => array("long_hair" => "12", "some_other_kind" => "1")
);
Мне нужно, чтобы вывод был определен примерно так:
имя / метка первого узла: первый ключ из первого массива => "псы" имя / метка второго узла: первый ключ из второго массива => "гниль", размер этого узла является значением соответствующего ключа - в этом случае "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 ответ
Я понял это сам:) Ссылка хитрость заключается в использовании функции addNode. В моем случае мне нужно было создать динамический граф, используя данные из динамически заполненного массива MD. Поэтому вам просто нужно присвоить узлу переменную, содержащую нужные вам данные. Мне также нужно было установить метку по значению переменной, поэтому вот код: $graph->addNode($var1, array('label' => $var1)); $graph->addNode($var2, array('label' => $var2)); $graph->addEdge(array($var1 => $var2)) работает, если имена переменных совпадают, но значения отличаются
6 лет опоздал на вечеринку, но эй! Я извиняюсь перед сообществом. Я понятия не имею, что происходило 6 лет назад.