#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 лет назад.