Informática Asociada ia doc & examples Index Examples List

ia\Lib\iaRanger

Summarize numbers to ranges by keys
* Pre-condition: array must be sorted

Documentation jit ia\Lib\iaRanger Documentation Usage sample Function examples Index Examples List

class ia\Lib\iaRanger


Index Documentation Usage sample Function examples Index Examples List

ia\Lib\iaRanger


Usage sample ia\Lib\iaRanger Documentation Usage sample Function examples Index Examples List

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);
  • 1, 3-5, 7, 9-11, 14
  • 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)
  • 1, 3-5, 7, 9-11, 14
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 ) )

Examples by function ia\Lib\iaRanger Documentation Usage sample Function examples Index Examples List

ia\Lib\iaRanger
Summarize numbers to ranges by keys
* Pre-condition: array must be sorted

Disclaimer: Auto generated file. Please help us setting parameters to useful values and extending the examples.

  • iaRanger::iaNumbers2Ranges(array $Data, array $keys = [], string $keyForNumber = null, string $joinWith = '-', string $separateBy = ', ', bool $md5Key = false) : array|string
    /**
         * Summarize numbers to ranges by keys
         * Data must be orderd by key1,key2,number
         *
         * @param array $Data [['key_1'=>'a', 'key_2', 'int'=>2014], ['key_1'=>'a', 'key_2', 'int'=>2015],...]
         * @param array $keys ['key_1', 'key_2', ..]
         * @param string $keyForNumber key to an integer to summarize by range
         * @param string $joinWith default '-' example 1,2,3,4 do "1.$joinWith"."4"
         * @param string $separateBy default ', '  example 1,3  do "1.$separateBy"."3"
         * @param bool $md5Key true use md5 for hashkey, uses key_1	key_2	...
         * @return array|string ['key_1	key_2	'=>['key_1'=>'Winery 1' 'key_2' => 'merlot' => 'vintage'=>'2010-2014, 2015-2016, 2018'], ...]
         * @version 1.1.0
         *
         * @example
         *   $ranged = iaNumbers2Ranges([1,2,3,5,7]); // "1 - 3, 5, 7", notice Data array is sorted
         *   $Data: [['Winery'=>'Casa Madero','Type'=>'red','Variety'=>'Merlot','Vintage'=>2010],...]; // sorted by Winery, Type, Variety, Vintage
         *   $ranged = iaNumbers2Ranges($Data,['Winery','Type','Variety'],'Vintage')
         *
         */
    
    1. iaRanger::iaNumbers2Ranges(['a' => '1', 'b' => '2', 'c' => 3]); -> 
      1-3

End: ia\Lib\iaRanger Documentation Usage sample Function examples Index Examples List