PHP code example of jrdev / drange
1. Go to this page and download the library: Download jrdev/drange 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/ */
jrdev / drange example snippets
use jrdev\DRange;
use jrdev\DRange\SubRange; // only needed if you use SubRange directly
$drange = new DRange(1, 5); // [ 1-5 ]
$drange->add(8); // [ 1-5, 8 ] gap at 6-7
$drange->add(6, 7); // [ 1-8 ] auto-merged
$drange->subtract(1, 3); // [ 4-8 ]
echo $drange; // "[ 4-8 ]"
echo count($drange); // 5
$drange = new DRange(1, 10)
->subtract(5)
->subtract(7);
// [ 1-4, 6, 8-10 ]
$allowed = new DRange(1, 1023);
$blocked = new DRange(22);
$blocked->add(23)->add(3306)->add(5432);
$available = clone $allowed;
$available->subtract($blocked);
// [ 1-21, 24-3305, 3307-5431, 5433-1023 ]
$drange = new DRange(0, 9); // 10 elements: 0–9
$drange->add(20, 29); // 10 more: 20–29
$drange->add(40, 49); // 10 more: 40–49
$drange->index(0); // 0 (1st element)
$drange->index(15); // 25 (16th element, 6th in second sub-range)
$drange->index(25); // 45 (26th element, 6th in third sub-range)
$drange->index(55); // null (out of bounds)
$drange = new DRange(1, 5); // 5 elements
$drange->add(10, 15); // 6 more
count($drange); // 11
$available = new DRange(1, 10);
$available->add(20, 30);
// [ 1-10, 20-30 ]
$requested = new DRange(5, 25);
$overlap = $available->intersect($requested);
// [ 5-10, 20-25 ]
count($overlap); // 12
use jrdev\DRange\SubRange;
$drange = new DRange(1, 10);
$drange->subtract(new SubRange(4, 6));
// [ 1-3, 7-10 ]