создание графика graphviz с использованием md-массивов из php

#php #multidimensional-array #image-graphviz

#php #многомерный массив #изображение-graphviz

Вопрос:

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

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

Мне нужно извлечь ключ «dogs» и использовать его в качестве метки nod, а также извлечь соответствующее значение «4» и каким-то образом использовать его для определения размера этого nod.
Мне нужно сделать то же самое с многомерными массивами. Просто глупый пример:

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

Мне нужно, чтобы вывод был определен примерно так:

имя / метка первого узла: первый ключ из первого массива => «собаки» имя / метка второго узла: первый ключ из второго массива => «rot» , размер этого узла является значением соответствующего ключа — в данном случае «7».

Мне также нужно знать, как передать переменную из моего array_script.php (скрипт, который создает мой MD-массив) в новый скрипт, который создаст график. Я попытался поместить пример кода для создания graph в свой php-скрипт, и на выходе появилось предупреждающее сообщение с указанием:

 Warning: Cannot modify header information - headers already sent by (output started at C:xampphtdocstesthare.php:1) in C:xamppphpPEARImageGraphViz.php on line 174
  

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

Комментарии:

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

2. Не могли бы вы указать это в качестве ответа на свой собственный вопрос. Вы можете выбрать свой собственный ответ в качестве ответа на вопрос. Это повышает ценность StackOverflow и помогает всем остальным — спасибо.

Ответ №1:

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

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