|
2 | 2 | require_once 'vendor/autoload.php';
|
3 | 3 |
|
4 | 4 | use Danon\IntervalTree\IntervalTree;
|
| 5 | +use Danon\IntervalTree\Interval; |
| 6 | +use Danon\IntervalTree\Node; |
5 | 7 |
|
6 | 8 | $tree = new IntervalTree();
|
7 | 9 | $intervals = [[6,8],[1,4],[2,3],[5,12],[1,1],[3,5],[5,7]];
|
|
15 | 17 | $sorted_intervals = $tree->getKeys(); // expected array [[1,1],[1,4],[5,7],[5,12],[6,8]]
|
16 | 18 |
|
17 | 19 | // Search items which keys intersect with given interval, and return array of values
|
18 |
| -$valuesInRange = $tree->search([2,3], function($value, $key) { |
19 |
| - return $value; |
20 |
| -}); |
| 20 | +$valuesInRange = $tree->iterateIntersections([2,3]); |
21 | 21 |
|
22 |
| -print_r($valuesInRange); |
| 22 | +foreach($valuesInRange as $node) { |
| 23 | + echo $node->getValue() . "\n"; |
| 24 | +} |
| 25 | + |
| 26 | +echo $tree->hasIntersect([66,83]); |
| 27 | +echo $tree->countIntersections([2,3]); |
| 28 | + |
| 29 | +print_r($tree->getIntersections([2,3])); |
| 30 | + |
| 31 | + |
| 32 | +// $tree = new IntervalTree(); |
| 33 | +// $intervals = [[6,8],[1,4],[2,3],[5,12],[1,1],[3,5],[5,7]]; |
| 34 | + |
| 35 | +// // Insert interval as a key and string "val0", "val1" etc. as a value |
| 36 | +// for ($i=0; $i < count($intervals); $i++) { |
| 37 | +// $tree->insert($intervals[$i], "val" . $i); |
| 38 | +// } |
| 39 | +// $iterator = $tree->searchIterator(new Node(new Interval(2,3)), null); |
| 40 | +// foreach($iterator as $node) { |
| 41 | +// echo "123\n"; |
| 42 | +// //print_r($node->getValue()); |
| 43 | +// } |
23 | 44 |
|
24 | 45 | // Array
|
25 | 46 | // (
|
|
0 commit comments