Spec-Zone.ru › CakePHP 2.7

Класс Set

Класс, используемый для манипулирования массивами.

Пакет: Cake\Utility
Устаревший: 3.0.0 Будет удалён в 3.0. Используйте Hash вместо него.
Авторские права: Авторские права (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположен в Cake/Utility/Set.php

Подробное описание методов

_flattenисточник protected static

_flatten( array $results , string $key null )

Разворачивает массив для сортировки

Параметры

массив $results
Массив для разворачивания.
строка $key необязательно null
Ключ.

Возвращает

array
массив

_mapисточник protected static

_map( array $array , string $class , boolean $primary false )

Преобразует заданное значение в объект. Если $value является объектом, возвращает $value. В противном случае преобразует $value в объект типа $class, и если первичное присвоение _name_ $key в первом массиве. Если $value не пустой, он используется для установки свойств возвращаемого объекта (рекурсивно). Если $key является числовым, сохраняется структура массива

Параметры

массив $array
$array Массив для преобразования
строка $class
Имя класса
логическое значение $primary необязательно false
присваивать ли первый ключ массива как _name_

Возвращает

mixed
Преобразованный объект

applyисточник public static

apply( mixed $path , array $data , mixed $callback , array $options array() )

Позволяет применять метод обратного вызова к элементам массива, извлечённым с помощью совместимого с Set::extract() пути.

Параметры

смешанный $path
Путь, совместимый с Set, к значению массива
массив $data
Массив данных для извлечения и обработки с помощью $callback.
смешанный $callback
Метод обратного вызова, который будет применён к извлечённым данным. См. http://ca2.php.net/manual/en/language.pseudo-types.php#language.types.callback для примеров форматов обратного вызова.
массив $options необязательно array()
Опции: - type : может быть pass, map или reduce. Map передаёт заданный обратный вызов array_map, reduce — array_reduce, а pass — call_user_func_array().

Возвращает

mixed
Результат применения обратного вызова к извлечённым данным

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::apply

checkисточник public static

check( string|array $data , string|array $path null )

Проверяет, установлен ли конкретный путь в массиве

Параметры

строка|массив $data
Данные для проверки
строка|массив $path необязательно null
Строка, разделённая точками.

Возвращает

boolean
true, если путь найден, иначе false

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::check

classicExtractисточник public static

classicExtract( array $data , string|array $path null )

Получает значение из массива или объекта, содержащегося в заданном пути, используя синтаксис пути массива, например: "{n}.Person.{[a-z]+}" - Где "{n}" представляет числовой ключ, "Person" представляет строковую литерал, а "{[a-z]+}" (т. е. любая строковая литерал, заключённая в скобки помимо {n} и {s}) интерпретируется как регулярное выражение.

Параметры

массив $data
Массив, из которого нужно извлечь
строка|массив $path необязательно null
В виде массива или строки, разделённой точками.

Возвращает

mixed
Массив сопоставленных элементов или содержимое одного выбранного элемента или null в следующих случаях: $path или $data равны null, нет найденных элементов.

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::classicExtract

combineисточник public static

combine( array|object $data , string|array $path1 null , string|array $path2 null , string $groupPath null )

Создаёт ассоциативный массив, используя $path1 для построения ключей и необязательно $path2 для получения значений. Если $path2 не указан, все значения будут инициализированы как null (полезно для Set::merge). Вы можете необязательно сгруппировать значения по тому, что получено при прослеживании пути, указанного в $groupPath.

Параметры

массив|объект $data
Массив или объект, из которого извлекаются ключи и значения
строка|массив $path1 необязательно null
В виде массива или строки, разделённой точками.
строка|массив $path2 необязательно null
В виде массива или строки, разделённой точками.
строка $groupPath необязательно null
В виде массива или строки, разделённой точками.

Возвращает

array
Объединённый массив

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::combine

containsисточник public static

contains( array $val1 , array $val2 null )

Определяет, содержит ли один Set или массив точные ключи и значения другого.

Параметры

массив $val1
Первое значение
массив $val2 необязательно null
Второе значение

Возвращает

boolean
true, если $val1 содержит $val2, иначе false

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::contains

countDimисточник public static

countDim( array $array , boolean $all false , integer $count 0 )

Подсчитывает размерности массива. Если $all установлен в false (по умолчанию), учитывается только размерность первого элемента массива.

Параметры

массив $array
Массив для подсчёта размерностей
логическое значение $all необязательно false
Установить в true, чтобы подсчитать размерность, учитывая все элементы в массиве
целое число $count необязательно 0
Начать подсчёт размерностей с этого числа

Возвращает

integer
Количество размерностей в $array

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::countDim

diffисточник public static

diff( mixed $val1 , mixed $val2 null )

Вычисляет разницу между Set и массивом, двумя Sets или двумя массивами

Параметры

смешанный $val1
Первое значение
смешанный $val2 необязательно null
Второе значение

Возвращает

array
Возвращает пары ключ => значение, которые не являются общими в $val1 и $val2 Выражение для этой функции:($val1 - $val2) + ($val2 - ($val1 - $val2))

Ссылка

http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::diff
END_OF_DOCUMENT_MARKER

enumsource public static

enum( string $select , array|string $list null )

Возвращает значение из списка массива, если ключ существует.

Если в качестве $list передается строка, разделенная запятыми, массивы являются числовыми, и ключ первого элемента — 0. Например, $list = 'no, yes' будет преобразовано в $list = array(0 => 'no', 1 => 'yes');

Если используется массив, ключи могут быть строками, например: array('no' => 0, 'yes' => 1);

$list по умолчанию устанавливается как 0 = нет, 1 = да, если параметр не передан.

Параметры

строка $select
Ключ в $list для возврата
массив|строка $list необязательный null
может быть массивом или списком, разделенным запятыми.

Возвращаемое значение

string
значение ключа массива или null, если совпадения нет

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::enum

expandsource public static

expand( array $data , string $separator '.' )

Развертывает/распределяет строку в массив.

Например, развертывает массив, который был свернут с помощью Set::flatten() в многомерный массив. Таким образом, array('0.Foo.Bar' => 'Far') становится array(array('Foo' => array('Bar' => 'Far'))).

Параметры

массив $data
Свернутый массив
строка $separator необязательный '.'
Разделитель, используемый

Возвращаемое значение

array
массив

extractsource public static

extract( string $path , array $data null , array $options array() )

Реализует частичную поддержку XPath 2.0. Если $path не содержит '/', вызов делегируется Set::classicExtract(). Также аргументы $path и $data обратимы.

В настоящее время реализованные селекторы:

  • /User/id (аналогично классическому {n}.User.id)
  • /User[2]/name (выбирает имя второго User)
  • /User[id>2] (выбирает всех User с id > 2)
  • /User[id>2][<5] (выбирает всех User с id > 2, но < 5)
  • /Post/Comment[author_name=john]/../name (Выбирает имя всех записей, у которых есть хотя бы один комментарий, написанный пользователем john)
  • /Posts[name] (Выбирает все записи, у которых есть ключ 'name')
  • /Comment/.[1] (Выбирает содержимое первого комментария)
  • /Comment/.[:last] (Выбирает последний комментарий)
  • /Comment/.[:first] (Выбирает первый комментарий)
  • /Comment[text=/cakephp/i] (Выбирает все комментарии, текст которых соответствует регулярному выражению /cakephp/i)
  • /Comment/@* (Выбирает все имена ключей всех комментариев)

Другие ограничения:

  • В настоящее время поддерживаются только абсолютные пути, начинающиеся с одного символа '/'

Предупреждение: Несмотря на наличие множества тестов, поддержка XPath не прошла большой проверки в реальных условиях. Пожалуйста, сообщайте об ошибках, которые вы обнаружите. Предложения по дополнительным реализуемым функциям также приветствуются!

Параметры

строка $path
Абсолютный путь XPath 2.0
массив $data необязательный null
Массив данных для извлечения
массив $options необязательный array()
В настоящее время поддерживает только 'flatten', который можно отключить для повышения уровня XPath

Возвращаемое значение

mixed
Массив совпадающих элементов или содержимое единственного выбранного элемента или null в следующих случаях: $path или $data равны null, элементы не найдены.

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::extract

filtersource public static

filter( array $var )

Фильтрует пустые элементы из массива маршрута, исключая '0'.

Параметры

массив $var
Массив для фильтрации или значение при использовании обратного вызова

Возвращаемое значение

mixed
Отфильтрованный массив или true/false при использовании обратного вызова

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::filter

flattensource public static

flatten( array $data , string $separator '.' )

Сворачивает многомерный массив в одномерный, используя путь к ключу массива с разделителем для каждого элемента массива, т.е. array(array('Foo' => array('Bar' => 'Far'))) становится array('0.Foo.Bar' => 'Far').

Параметры

массив $data
Массив для сжатия
строка $separator необязательный '.'
Строка, используемая для разделения элементов ключа массива в пути, по умолчанию '.'

Возвращаемое значение

array
массив

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::flatten

formatsource public static

format( array $data , string $format , array $keys )

Возвращает ряд значений, извлеченных из массива, отформатированных в строке формата.

Параметры

массив $data
Исходный массив, из которого извлекаются данные
строка $format
Строка формата, в которую будут вставлены значения, см. sprintf()
массив $keys
Массив, содержащий один или несколько путей ключей в стиле Set::extract()

Возвращаемое значение

array|null
Массив строк, извлеченных из $keys и отформатированных с помощью $format, в противном случае null.

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::format

getsource public static

get( array $input , string|array $path null )

Возвращает значение в указанной позиции.

Параметры

массив $input
массив
строка|массив $path необязательный null
строка или массив ключей массива

Возвращаемое значение

the
значение в указанной позиции или null, если оно не существует

insertsource public static

insert( array $list , string $path , array $data null )

Вставляет $data в массив, как определено в $path.

Параметры

массив $list
Куда вставлять
строка $path
Строка, разделенная точками.
массив $data необязательный null
Данные для вставки

Возвращаемое значение

array
массив

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::insert

mapsource public static

map( string $class 'stdClass' , string $tmp 'stdClass' )

Преобразует содержимое объекта Set в иерархию объектов. Числовые ключи сохраняются как массивы объектов

Параметры

строка $class необязательный 'stdClass'
Имя класса типа объекта, к которому нужно преобразовать
строка $tmp необязательный 'stdClass'
Временное имя класса, используемое как $class, если $class — массив

Возвращаемое значение

object|null
Иерархический объект

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::map

matchessource public static

matches( string|array $conditions , array $data array() , integer $i null , integer $length null )

Эта функция может использоваться для проверки, соответствует ли единственный элемент или заданный xpath определенным условиям.

Параметры

строка|массив $conditions
Массив строк условий или выражение XPath
массив $data необязательный array()
Массив данных, на которых выполняется проверка
целое число $i необязательный null
Необязательно: номер 'n'-го элемента, на котором выполняется проверка.
целое число $length необязательный null
Длина.

Возвращаемое значение

boolean
bool

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::matches
END_OF_DOCUMENT_MARKER

mergesource public static

merge( array $data , array $merge null )

Эта функция можно рассматривать как гибрид между PHP функциями array_merge и array_merge_recursive. Разница заключается в том, что если ключ массива содержит другой массив, то функция ведет себя рекурсивно (в отличие от array_merge), но не делает этого для ключей, содержащих строки (в отличие от array_merge_recursive).

Так как этот метод эмулирует array_merge, он будет переупорядочивать числовые ключи. При сочетании с не отсортированными числовыми ключами, содержащими массивы, результаты могут быть неполными.

Примечание: Эта функция может работать с неограниченным количеством аргументов и преобразует параметры, которые не являются массивами, в массивы.

Параметры

массив $data
Массив, который должен быть объединён
массив $merge необязательный null
Массив, который должен быть объединён с первым

Возвращает

array
Объединённый массив

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::merge

nestsource public static

nest( mixed $data , array $options array() )

Принимает плоский массив и возвращает вложенный массив

Параметры

смешанное $data
Данные
массив $options необязательный array()
Параметры: children - имя ключа для использования в наборе результатов для дочерних элементов idPath - путь к ключу, который идентифицирует каждый элемент parentPath - путь к ключу, который идентифицирует родительский элемент каждого root - идентификатор желаемого верхнего элемента результата

Возвращает

array
Результаты, вложенные

Ссылка

normalizesource public static

normalize( mixed $list , boolean $assoc true , string $sep ',' , boolean $trim true )

Нормализует строку или список массивов.

Параметры

смешанное $list
Список для нормализации
логическое значение $assoc необязательный true
Если true, $list будет преобразован в ассоциативный массив
строка $sep необязательный ','
Если $list является строкой, он будет разделен на массив с помощью $sep
логическое значение $trim необязательный true
Если true, разделенные строки будут обрезаны

Возвращает

array
массив

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::normalize

numericsource public static

numeric( array $array null )

Проверяет, являются ли все значения в массиве числовыми.

Параметры

массив $array необязательный null
Массив для проверки. Если null, значение текущего объекта Set.

Возвращает

boolean
true, если значения являются числовыми, false в противном случае

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::numeric

pushDiffsource public static

pushDiff( array $array , array $array2 )

Добавляет различия в $array2 в конец $array

Параметры

массив $array
Исходный массив
массив $array2
Различия для добавления

Возвращает

array
Объединенный массив

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::pushDiff

removesource public static

remove( array $list , string $path null )

Удаляет элемент из набора или массива, определённого $path.

Параметры

массив $list
Из чего нужно удалить
строка $path необязательный null
Строка, разделенная точками.

Возвращает

array
Массив с удалённым $path из его значения

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::remove

reversesource public static

reverse( object $object )

Преобразует объект в массив.

Параметры

объект $object
Объект для преобразования

Возвращает

array
Представление массива данного объекта

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::reverse

sortsource public static

sort( array $data , string $path , string $dir )

Сортирует массив по любому значению, определяемому путем, совместимым с Set

Параметры

массив $data
Массив данных для сортировки
строка $path
Путь к значению массива, совместимый с Set
строка $dir
Направление сортировки - либо возрастающее (ASC), либо убывающее (DESC)

Возвращает

array
Отсортированный массив данных

Ссылка

http://book.cakephp.org/2.0/ru/core-utility-libraries/set.html#Set::sort

© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-Set.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API