Spec-Zone.ru › CakePHP 2.9

Класс Set

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

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

Краткое описание методов

  • _flatten() protected static
    Уплощает массив для сортировки
  • _map() protected static

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

  • apply() public static

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

  • check() public static
    Проверяет, установлен ли конкретный путь в массиве
  • classicExtract() public static

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

  • combine() public static

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

  • contains() public static
    Определяет, содержит ли один Set или массив точные ключи и значения другого.
  • countDim() public static

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

  • diff() public static
    Вычисляет разницу между Set и массивом, двумя Sets или двумя массивами
  • enum() public static
    Возвращает значение из списка массива, если ключ существует.
  • expand() public static
    Развертывает/распаковывает строку в массив
  • extract() public static

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

  • filter() public static
    Фильтрует пустые элементы из массива маршрута, исключая '0'.
  • flatten() public static

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

  • format() public static
    Возвращает ряд значений, извлечённых из массива, отформатированных в строке формата.
  • get() public static
    Возвращает значение в указанной позиции
  • insert() public static
    Вставляет $data в массив, как определено $path.
  • map() public static

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

  • matches() public static
    Эта функция может быть использована для проверки, соответствует ли отдельный элемент или заданный xpath определённым условиям.
  • merge() public static

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

  • nest() public static
    Принимает плоский массив и возвращает вложенный массив
  • normalize() public static
    Нормализует строку или список массивов.
  • numeric() public static
    Проверяет, являются ли все значения в массиве числовыми
  • pushDiff() public static
    Добавляет различия в $array2 в конец $array
  • remove() public static
    Удаляет элемент из Set или массива, как определено $path.
  • reverse() public static
    Преобразует объект в массив.
  • sort() public static
    Сортирует массив по любому значению, определяемому совместимым с Set путём

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

_flatten()source protected static

_flatten( array $results , string $key null )

Уплощает массив для сортировки

Параметры

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

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

массив

_map()source protected static

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

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

Параметры

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

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

смешанное
Преобразованный объект

apply()source public static

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

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

Параметры

смешанное $path
Путь, совместимый с Set, к значению в массиве
массив $data
Массив данных для извлечения и обработки с помощью $callback.
смешанное $callback

Метод обратного вызова, применяемый к извлечённым данным. Смотрите http://ca2.php.net/manual/ru/language.pseudo-types.php#language.types.callback для примеров форматов обратных вызовов.

массив $options необязательно array()

Опции: - type : может быть pass, map или reduce. Map передаёт заданный обратный вызов в array_map, reduce — в array_reduce, а pass — в call_user_func_array().

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

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

Ссылка

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

check()source public static

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

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

Параметры

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

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

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

Ссылка

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

classicExtract()source public static

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

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

Параметры

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

Возвращает

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

Ссылка

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

combine()source 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
В виде массива или в виде строки, разделенной точками.

Возвращает

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

Ссылка

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

contains()source public static

contains( array $val1 , array $val2 null )

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

Параметры

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

Возвращает

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

Ссылка

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

countDim()source public static

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

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

Параметры

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

Возвращает

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

Ссылка

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

diff()source public static

diff( mixed $val1 , mixed $val2 null )

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

Параметры

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

Возвращает

массив

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


Ссылка

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

enum()source 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 = no 1 = yes, если параметр не передан.

Параметры

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

Возвращает

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

Ссылка

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

expand()source public static

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

Развернуть/разобрать строку в массив.

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

Параметры

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

Возвращает

массив

extract()source 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

Возвращает

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

Ссылка

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

filter()source public static

filter( array $var )

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

Параметры

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

Возвращает

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

Ссылка

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

flatten()source public static

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

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

Параметры

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

Возвращает

массив

Ссылка

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

format()source public static

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

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

Параметры

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

Возвращает

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

Ссылка

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

get()source public static

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

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

Параметры

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

Возвращает

значение
значение по указанному положению или null, если оно не существует

insert()source public static

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

Вставляет $data в массив в соответствии с $path.

Параметры

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

Возвращает

массив

Ссылка

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

map()source public static

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

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

Параметры

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

Возвращает

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

Ссылка

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

matches()source public static

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

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

Параметры

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

Возвращает

boolean

Ссылка

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

merge()source public static

merge( array $data , array $merge null )

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

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

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

Параметры

массив $data
Массив, подлежащий слиянию
массив $merge необязательно null
Массив для слияния

Возвращает

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

Ссылка

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

nest()source public static

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

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

Параметры

смешанный $data
Данные
массив $options необязательно array()

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

Возвращает

массив
вложенный результирующий массив

Ссылка

normalize()source public static

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

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

Параметры

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

Возвращает

массив

Ссылка

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

numeric()source 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

pushDiff()source public static

pushDiff( array $array , array $array2 )

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

Параметры

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

Возвращает

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

Ссылка

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

remove()source public static

remove( array $list , string $path null )

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

Параметры

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

Возвращает

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

Ссылка

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

reverse()source public static

reverse( object $object )

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

Параметры

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

Возвращает

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

Ссылка

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

sort()source public static

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

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

Параметры

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

Возвращает

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

Ссылка

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.
https://api.cakephp.org/2.9/class-Set.html

Spec-Zone.ru

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