ia\Lib\iaRanger
Summarize numbers to ranges by keys
* Pre-condition: array must be sorted
- iaRanger::iaNumbers2Ranges([1, 3, 4, 5, 7, 9, 10, 11, 14]); // precondtion: array is sorted and trimmed
- iaRanger::iaNumbers2Ranges($Data, $keys = [], $keyForNumber = null, $joinWith = '-', $separateBy = ', ', $md5Key = false);
|
|
- iaRanger::iaNumbers2Ranges(["1", "3", "4", "5", "7", "9", 10, 11, 14]);
// array is sorted and trimmed
- iaRanger::iaNumbers2Ranges($data, $keys = [], $keyForNumber = null, $joinWith = '-', $separateBy = ', ', $md5Key = false)
|
|
| Ranges by key |
$values =
[
['k'=>'a','v'=>3],['k'=>'a','v'=>4],['k'=>'a','v'=>5],['k'=>'a','v'=>13],
['k'=>'b','v'=>6],['k'=>'b','v'=>7],['k'=>'b','v'=>8],
['v'=>12345], // no key
]; // array is sorted by key, value
$range = iaRanger::iaNumbers2Ranges($values, ['k'], 'v', ' al ');
|
Array
(
[a] => Array
(
[k] => a
[v] => 3 al 5, 13
)
[b] => Array
(
[k] => b
[v] => 6 al 8
)
)
|
| Ranges by Multiple key |
$values =
[
['k'=>'a','v'=>3],['k'=>'a','v'=>4],['k'=>'a','v'=>5],['k'=>'a','v'=>13],
['k'=>'b','v'=>6],['k'=>'b','v'=>7],['k'=>'b','v'=>8],
['v'=>12345], // no key
]; // array is sorted by key, value
$range = iaRanger::iaNumbers2Ranges($values, ['k'], 'v', ' al ', ' | ');
|
Array
(
[a] => Array
(
[k] => a
[v] => 3 al 5 | 13
)
[b] => Array
(
[k] => b
[v] => 6 al 8
)
)
|
| Ranges by Multiple key |
$data = [
['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Merlot','Vintage'=>2010], ['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Merlot','Vintage'=>2011],
['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Merlot','Vintage'=>2012], ['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Merlot','Vintage'=>2013],
['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Shira','Vintage'=>2014], ['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Shira','Vintage'=>2015],
['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Shira','Vintage'=>2016], ['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Shira','Vintage'=>2017],
['Winery'=>'Torres','Type'=>'red','Variety'=>'Merlot','Vintage'=>2010], ['Winery'=>'Torres','Type'=>'red','Variety'=>'Merlot','Vintage'=>2011],
['Winery'=>'Torres','Type'=>'red','Variety'=>'Merlot','Vintage'=>2012], ['Winery'=>'Torres','Type'=>'red','Variety'=>'Merlot','Vintage'=>2013],
]; // array is sorted by 'Winery','Type','Variety', 'Vintage'
$range = iaRanger::iaNumbers2Ranges($data, ['Winery','Type','Variety'], 'Vintage');
|
Array
(
[Casa Madero red Merlot] => Array
(
[Winery] => Casa Madero
[Type] => red
[Variety] => Merlot
[Vintage] => 2010-2013
)
[Casa Madero red Shira] => Array
(
[Winery] => Casa Madero
[Type] => red
[Variety] => Shira
[Vintage] => 2014-2017
)
[Torres red Merlot] => Array
(
[Winery] => Torres
[Type] => red
[Variety] => Merlot
[Vintage] => 2010-2013
)
)
|