Spec-Zone.ru › Symfony 2.7

OrderedHashMap

class OrderedHashMap implements ArrayAccess, IteratorAggregate, Countable

Хеш-таблица, которая отслеживает удаления и добавления.

Как и в ассоциативных массивах, элементы могут быть сопоставлены с целочисленными или строковыми ключами. В отличие от ассоциативных массивов, карта отслеживает порядок, в котором ключи были добавлены и удалены. Этот порядок отражается во время итерации.

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

Хотя элементы, которые добавляются во время цикла, распознаются итератором, измененные элементы не распознаются. В противном случае цикл может быть бесконечным, если каждый цикл изменяет текущий элемент:

$map = new OrderedHashMap();
$map[1] = 1;
$map[2] = 2;
$map[3] = 3;

foreach ($map as $index => $value) {
    echo "$index: $value\n"
    if (1 === $index) {
        $map[1] = 4;
        $map[] = 5;
    }
}

print_r(iterator_to_array($map));

// => 1: 1
//    2: 2
//    3: 3
//    4: 5
//    Array
//    (
//        [1] => 4
//        [2] => 2
//        [3] => 3
//        [4] => 5
//    )

Карта также поддерживает несколько параллельных итераторов. Это означает, что вы можете вкладывать циклы foreach, не влияя друг на друга:

foreach ($map as $index => $value) {
    foreach ($map as $index2 => $value2) {
        // ...
    }
}

Methods

__construct(array $elements = array())

Создаёт новую карту.

offsetExists($key)

{@inheritdoc}

offsetGet($key)

{@inheritdoc}

offsetSet($key, $value)

{@inheritdoc}

offsetUnset($key)

{@inheritdoc}

getIterator()

{@inheritdoc}

count()

{@inheritdoc}

Details

__construct(array $elements = array())

Создаёт новую карту.

Parameters

array $elements Элементы для начальной вставки

offsetExists($key)

{@inheritdoc}

Parameters

$key

offsetGet($key)

{@inheritdoc}

Parameters

$key

offsetSet($key, $value)

{@inheritdoc}

Parameters

$key
$value

offsetUnset($key)

{@inheritdoc}

Parameters

$key

getIterator()

{@inheritdoc}

count()

{@inheritdoc}

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.7/Symfony/Component/Form/Util/OrderedHashMap.html

Spec-Zone.ru

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