Я хочу создать класс-оболочку, который позволит использовать дубликаты ключей, в то время как хэш-настройки по умолчанию не позволяют. Класс должен использовать механизм перегрузки элементов, введенный в php5, поэтому он будет имитировать все стандартные хэши поведения. Например, я хочу, чтобы чего-л, какКак создать структуру данных с ключевыми дубликатами в php вместо хэша по умолчанию?
$var => obj(:values_arr -> array(
obj(:key -> 'mykey', :value -> 'val1'),
obj(:key -> 'mykey', :value -> 'val2')
)
)
Если я хочу, чтобы получить $ вар [ «MYKEY»], он должен вернуть массив («val1», «val2»), но если я хочу продлить OBJ с новым «MyKey» => «значение» пары, я бы назвал
$val['mykey'][] = 'value'
Основная идея заключается в том, что поведение хэш сохранилась и после того, как попытка присвоить значение, используя существующий ключ, он не будет перезаписана, но прилагается к списку.
Как бы вы имитировали другие структуры данных в php5 (до 5.3)? Существуют ли какие-либо известные решения или примеры, которые вы хотите поделиться?
мне это нужно для абстрактного синтаксиса дерева строитель. Например, я мог бы иметь выражение ((word1 AND word2) AND (word3 AND word4)). Я буду преобразован в массив 'array ('AND' => array ('AND' => array ('word1', 'word2'), 'AND' => array ('word3', 'word4'));' – altern