Spec-Zone.ru › CakePHP 2.8

Класс Set

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

Пакет: Cake\Utility
Устаревший: 3.0.0 Будет удален в 3.0. Используйте Hash вместо него.
Авторские права: Copyright (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 и массивом, двумя Set или двумя массивами
  • 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 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
присваивать ли ключ первого массива как имя

Возвращает

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

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/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().

Возвращает

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

Ссылка

http://book.cakephp.org/2.0/en/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/en/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
В виде массива или в виде строки, разделенной точками.

Возвращает

mixed
Массив совпавших элементов или содержимое единственного выбранного элемента или 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 )

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

Параметры

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

Возвращает

boolean
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
Массив для подсчета размерностей
boolean $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 )

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

Параметры

смешанный $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 )

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

Если передан список через запятую, массивы являются числовыми, и ключ первого равен 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 (Выбирает имя всех записей Post, у которых есть хотя бы один комментарий, написанный john)
  • /Posts[name] (Выбирает все записи Posts, у которых есть ключ '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

flatten()source public static

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

Преобразует многомерный массив в одномерный, используя разделитель для ключей элементов массива, например, массив (массив ('Foo' => массив ('Bar' => 'Far'))) преобразуется в массив ('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 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
END_OF_DOCUMENT_MARKER

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

Spec-Zone.ru

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