1. Особенности
Поддерживает типичный запрос «ключ->значение».
Может использоваться как массив.
Добавление и удаление узлов имеет сложность O(1).
Key поддерживает смешанные типы: одновременно существуют связанные индексные массивы.
Значение поддерживает смешанные типы.
Поддерживает линейный обход: например, foreach.
2. Пример
typedef struct _hashtable { uint nTableSize; //Длина таблицы, а не количество элементов uint nTableMask //Маска таблицы, всегда равна nTableSize-1; uint nNumOfElements; //Количество сохраненных элементов ulong nNextFreeElement; //Указывает на следующую позицию пустого элемента Bucket *pInternalPointer; //Во время цикла foreach используется для записи текущей позиции элемента Bucket *pListHead; Ведро *pListTail; Bucket **arBuckets;//Сохраненный массив элементов dtor_func_t pDestructor;//Деструктор zend_bool persist;//Сохраняется ли он. Отсюда мы видим, что массивы PHP могут сохраняться в памяти без перезагрузки каждого запроса. беззнаковый символ nApplyCount; zend_bool bApplyProtection; } Хэш-таблица;
Выше приведены характеристики хеш-таблицы в PHP. Надеюсь, это будет полезно всем.