PHPTree examples
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types = 1); | |
use Graphp\GraphViz\GraphViz; | |
use drupol\phptree\Node\ValueNode; | |
use drupol\phptree\tests\Exporter\ValueGraph; | |
include './vendor/autoload.php'; | |
$data = [ | |
'is', | |
'a', | |
'fast', | |
'and', | |
'fun', | |
'library', | |
'to', | |
'manipulate', | |
'trees', | |
'data', | |
'structure', | |
]; | |
$tree = new ValueNode('PHPTree'); | |
foreach ($data as $value) { | |
$tree->add(new ValueNode($value)); | |
} | |
$exporterGraph = new ValueGraph(); | |
(new GraphViz())->setFormat('svg')->display($exporterGraph->export($tree)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types = 1); | |
use Graphp\GraphViz\GraphViz; | |
use drupol\phptree\Node\ValueNode; | |
use drupol\phptree\tests\Exporter\ValueGraph; | |
use drupol\phptree\Exporter\SimpleArray; | |
use drupol\phptree\Exporter\Text; | |
use drupol\phptree\Exporter\Ascii; | |
include './vendor/autoload.php'; | |
$data = [ | |
'is', | |
'a', | |
'fast', | |
'and', | |
'fun', | |
'library', | |
'to', | |
'manipulate', | |
'trees', | |
'data', | |
'structure', | |
]; | |
$tree = new ValueNode('PHPTree', 2); | |
foreach ($data as $value) { | |
$tree->add(new ValueNode($value, 2)); | |
} | |
$exporterAscii = new Ascii(); | |
echo $exporterAscii->export($tree); | |
$exporterText = new Text(); | |
echo $exporterText->export($tree); | |
$exporterArray = new SimpleArray(); | |
\var_export($exporterArray->export($tree)); | |
$exporterGraph = new ValueGraph(); | |
(new GraphViz())->setFormat('svg')->display($exporterGraph->export($tree)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types = 1); | |
use Graphp\GraphViz\GraphViz; | |
use drupol\phptree\Node\ValueNode; | |
use drupol\phptree\tests\Exporter\ValueGraph; | |
use drupol\phptree\Exporter\SimpleArray; | |
use drupol\phptree\Exporter\Text; | |
include './vendor/autoload.php'; | |
$data = [ | |
'is', | |
'a', | |
'fast', | |
'and', | |
'fun', | |
'library', | |
'to', | |
'manipulate', | |
'trees', | |
'data', | |
'structure', | |
]; | |
$tree = new ValueNode('PHPTree', 1); | |
foreach ($data as $value) { | |
$tree->add(new ValueNode($value, 1)); | |
} | |
$exporterGraph = new ValueGraph(); | |
(new GraphViz())->setFormat('svg')->display($exporterGraph->export($tree)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types = 1); | |
use Graphp\GraphViz\GraphViz; | |
use drupol\phptree\Node\ValueNode; | |
use drupol\phptree\tests\Exporter\ValueGraph; | |
use drupol\phptree\Exporter\SimpleArray; | |
use drupol\phptree\Exporter\Text; | |
include './vendor/autoload.php'; | |
$data = [ | |
'1006' => 'Conseil de la Commission communautaire flamande', | |
'1007' => 'Parlement francophone bruxellois', | |
'1008' => 'Chambre des représentants', | |
'1009' => 'Sénat de Belgique', | |
'1010' => 'Cité administrative de l\'État', | |
'1011' => 'Parlement flamand', | |
'1012' => 'Parlement de la Communauté française', | |
'1020' => 'Laeken', | |
'1030' => 'Schaerbeek', | |
'1031' => 'Organisations sociales chrétiennes', | |
'1033' => 'RTL-TVI', | |
'1035' => 'Ministère de la Région de Bruxelles-Capitale', | |
'1040' => 'Etterbeek', | |
'1041' => 'International Press Center', | |
'1043' => 'VRT', | |
'1044' => 'RTBF', | |
'1045' => 'Direction d\'Immatriculation des Véhicules (DIV)', | |
'1046' => 'Service Européen pour l\'action extérieure', | |
'1047' => 'Parlement européen', | |
'1048' => 'Conseil de l\'Union européenne', | |
'1049' => 'Commission européenne', | |
'1050' => 'Ixelles', | |
'1060' => 'Saint-Gilles', | |
'1070' => 'Anderlecht', | |
'1080' => 'Molenbeek-Saint-Jean', | |
'1081' => 'Koekelberg', | |
'1082' => 'Berchem-Sainte-Agathe', | |
'1083' => 'Ganshoren', | |
'1090' => 'Jette', | |
'1100' => 'Chèques postaux', | |
'1105' => 'Service social de la Poste', | |
'1110' => 'Organisation du traité de l\'Atlantique nord (OTAN)', | |
'1120' => 'Neder-Over-Heembeek', | |
'1130' => 'Haren', | |
'1140' => 'Evere', | |
'1150' => 'Woluwe-Saint-Pierre', | |
'1160' => 'Auderghem', | |
'1170' => 'Watermael-Boitsfort', | |
'1180' => 'Uccle', | |
'1190' => 'Forest', | |
'1200' => 'Woluwe-Saint-Lambert', | |
'1210' => 'Saint-Josse-ten-Noode', | |
'1212' => 'Service public fédéral Mobilité et Transports', | |
]; | |
$tree = new ValueNode('Bruxelles'); | |
foreach (['10', '11', '12'] as $prefix) { | |
$codes = []; | |
foreach ($data as $key => $value) { | |
if (0 === \strpos((string) $key, $prefix)) { | |
$tree->add(new ValueNode($key . ' ' . $value)); | |
$codes[$key] = $value; | |
} | |
} | |
} | |
$exporterGraph = new ValueGraph(); | |
(new GraphViz())->setFormat('svg')->display($exporterGraph->export($tree)); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
declare(strict_types = 1); | |
namespace drupol\phptree; | |
use drupol\phptree\Modifier\Reverse; | |
use drupol\phptree\Node\ValueNode; | |
use drupol\phptree\tests\Exporter\ValueGraph; | |
use drupol\phptree\Traverser\InOrder; | |
use Graphp\GraphViz\GraphViz; | |
include 'vendor/autoload.php'; | |
$data = \range('A', 'Z'); | |
$tree = new ValueNode('root', 2); | |
foreach ($data as $key => $value) { | |
$node = new ValueNode($value, 2); | |
$tree->add($node); | |
} | |
$graphViz = new GraphViz(); | |
$exporterGraph = new ValueGraph(); | |
$graphViz->setFormat('svg')->display($exporterGraph->export($tree)); | |
$modifier = new Reverse(); | |
$tree = $modifier->modify($tree); | |
$graphViz = new GraphViz(); | |
$exporterGraph = new ValueGraph(); | |
$graphViz->setFormat('svg')->display($exporterGraph->export($tree)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment