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)
) */
Печать/экспорт