PHP code example of marcj / topsort
1. Go to this page and download the library: Download marcj/topsort library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
marcj / topsort example snippets
$sorter = new StringSort();
$sorter->add('car1', ['owner1', 'brand1']);
$sorter->add('brand1');
$sorter->add('brand2');
$sorter->add('owner1', ['brand1']);
$sorter->add('owner2', ['brand2']);
$result = $sorter->sort();
// output would be:
[
'brand1',
'owner1',
'car1',
'brand2',
'owner2'
]
$sorter = new GroupedStringSort();
$sorter->add('car1', 'car', ['owner1', 'brand1']);
$sorter->add('brand1', 'brand');
$sorter->add('brand2', 'brand');
$sorter->add('owner1', 'user', ['brand1']);
$sorter->add('owner2', 'user', ['brand2']);
$result = $sorter->sort();
// output would be:
[
'brand2',
'brand1',
'owner2',
'owner1',
'car1'
]
$groups = $sorter->getGroups();
[
{type: 'brand', level: 0, position: 0, length: 2},
{type: 'user', level: 1, position: 2, length: 2},
{type: 'car', level: 2, position: 4, length: 1},
]
//of course there may be several groups with the same type, if the dependency graphs makes this necessary.
foreach ($groups as $group) {
$firstItem = $result[$group->position];
$allItemsOfThisGroup = array_slice($result, $group->position, $group->length);
}
$sorter = new GroupedStringSort;
$sorter->add(...);
$result = $sorter->sort();