01.
<?php
02.
03.
$test
= [
04.
[
'id'
=>
'one'
,
'deps'
=> [
'two'
]],
05.
[
'id'
=>
'two'
,
'deps'
=> [
'three'
,
'four'
]],
06.
[
'id'
=>
'three'
,
'deps'
=> []],
07.
[
'id'
=>
'four'
,
'deps'
=> []],
08.
[
'id'
=>
'five'
,
'deps'
=> [
'four'
]],
09.
[
'id'
=>
'six'
,
'deps'
=> []],
10.
[
'id'
=>
'seven'
,
'deps'
=> [
'eight'
]],
11.
[
'id'
=>
'eight'
,
'deps'
=> [
'nine'
]],
12.
[
'id'
=>
'nine'
,
'deps'
=> [
'one'
]],
13.
];
14.
15.
16.
17.
require
'vendor/autoload.php'
;
18.
19.
var_dump(
$test
);
20.
echo
'<hr>'
;
21.
echo
'<div>the result should be "three, four, two, one, five, six, nine, eight, seven"</div>'
.
"\n"
;
22.
23.
24.
$Sorter
=
new
\MJS\TopSort\Implementations\FixedArraySort();
25.
26.
foreach
(
$test
as
$item
) {
27.
if
(isset(
$item
[
'id'
]) && isset(
$item
[
'deps'
])) {
28.
$Sorter
->add(
$item
[
'id'
],
$item
[
'deps'
]);
29.
}
30.
}
31.
32.
$result
=
$Sorter
->sort();
33.
34.
var_dump(
$result
);
35.
unset(
$result
,
$Sorter
);