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) {
// ...
}
}
Методы
| __construct(array $elements = array()) Создаёт новую карту. | ||
| offsetExists($key) {@inheritdoc} | ||
| offsetGet($key) {@inheritdoc} | ||
| offsetSet($key, $value) {@inheritdoc} | ||
| offsetUnset($key) {@inheritdoc} | ||
| getIterator() {@inheritdoc} | ||
| count() {@inheritdoc} |
Подробное описание
__construct(array $elements = array())
Создаёт новую карту.
Параметры
| массив | $elements | Элементы для начальной вставки. |
offsetExists($key)
{@inheritdoc}
Параметры
| $key |
offsetGet($key)
{@inheritdoc}
Параметры
| $key |
offsetSet($key, $value)
{@inheritdoc}
Параметры
| $key | ||
| $value |
offsetUnset($key)
{@inheritdoc}
Параметры
| $key |
getIterator()
{@inheritdoc}
count()
{@inheritdoc}
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/Form/Util/OrderedHashMap.html