Matrix
Класс matrix предлагает несколько общих утилит для работы с массивами и календарем.
Пространство имен: \
Расположение файла:lib/matrix.php
Инициализация
Вернуть экземпляр класса
$matrix = \Matrix::instance();
Класс Matrix использует фабричную оболочку Prefab , поэтому вы можете получить один и тот же экземпляр этого класса в любой точке вашего кода.
changekey
Изменить ключ элемента двумерного массива
null changekey ( array &$var, string $old, string $new )
пример:
$array=array( 'id'=>array(456,123,345,234), 'name'=>array('ringo','paul','george','john'), 'sales'=>array(0.13,0.35,0.57,0.79) ); $matrix->changekey($array,'sales','percent'); /* $array is now: array( 'id'=>array(456,123,345,234), 'name'=>array('ringo','paul','george','john'), 'percent'=>array(0.13,0.35,0.57,0.79) )*/
pick
Получение значений из указанного столбца многомерного массива
array pick ( array $var, mixed $col )
пример:
$array=array( array('id'=>123,'name'=>'paul','sales'=>0.35), array('id'=>456,'name'=>'ringo','sales'=>0.13), array('id'=>345,'name'=>'george','sales'=>0.57), array('id'=>234,'name'=>'john','sales'=>0.79) ); $result = $matrix->pick($array,'name'); /* returns: array('paul','ringo','george','john') */
sort
Сортировка многомерного массива по указанному столбцу
bool sort ( array &$var, mixed $col [, int $order=SORT_ASC ] )
пример:
$array=array( array('id'=>123,'name'=>'paul','sales'=>0.35), array('id'=>456,'name'=>'ringo','sales'=>0.13), array('id'=>345,'name'=>'george','sales'=>0.57), array('id'=>234,'name'=>'john','sales'=>0.79) ); $matrix->sort($array,'sales'); /* $array is now: array( array('id'=>456,'name'=>'ringo','sales'=>0.13), array('id'=>123,'name'=>'paul','sales'=>0.35), array('id'=>345,'name'=>'george','sales'=>0.57), array('id'=>234,'name'=>'john','sales'=>0.79) ) */
transpose
Переворачивает двумерный массив
null transpose ( array &$var )
пример:
$array=array( array('id'=>123,'name'=>'paul','sales'=>0.35), array('id'=>456,'name'=>'ringo','sales'=>0.13), array('id'=>345,'name'=>'george','sales'=>0.57), array('id'=>234,'name'=>'john','sales'=>0.79) ); $matrix->transpose($array); /* $array is now: array( 'id'=>array(123,456,345,234), 'name'=>array('paul','ringo','george','john'), 'sales'=>array(0.35,0.13,0.57,0.79) )*/
calendar
Возврат календарного месяца с необязательной настройкой для первого дня недели (0 для воскресенья)
array calendar ( string $date [, int $first = 0 ] )
Возвращает массив, содержащий массив для каждой недели заданного месяца. Возможные индексы от 0 до 6, 0 для первого дня недели, заданного параметром $first, а 6 - это 6-й день после первого дня недели. Пример: если вам нужен календарь с неделями, начинающимися с понедельника, дни в массивах недель в возвращенном календаре будут начинаться с индекса 0, а воскресенье, которое будет на 6 дней позже, получит индекс 6.
Примеры:
$cal = $matrix->calendar('2014-06', 1); // with weeks starting on Monday /* array( array(6=>1), // 1st day of the month is a Sunday, index 6 array(0=>2,1=>3,2=>4,3=>5,4=>6,5=>7,6=>8), array(0=>9,1=>10,2=>11,3=>12,4=>13,5=>14,6=>15), array(0=>16,1=>17,2=>18,3=>19,4=>20,5=>21,6=>22), array(0=>23,1=>24,2=>25,3=>26,4=>27,5=>28,6=>29), array(0=>30) ) */
и тот же календарь в котором неделя начинается с воскресенья:
$cal = $matrix->calendar('2014-06', 0); // with weeks starting on Sunday /* array( array(0=>1,1=>2,2=>3,3=>4,4=>5,5=>6,6=>7), // 1st day of the month is a Sunday, index 0 array(0=>8,1=>9,2=>10,3=>11,4=>12,5=>13,6=>14), array(0=>15,1=>16,2=>17,3=>18,4=>19,5=>20,6=>21), array(0=>22,1=>23,2=>24,3=>25,4=>26,5=>27,6=>28), array(0=>29,1=>30) ) */