|
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