Любая строка, используемая в качестве ключа в массиве, хэшируется.По аналогии с md5 () и sha1 () это хэширование уменьшает (потенциально гигабайты) символов до известной длины.в отличие от md5 () или sha1 () механизм внутреннего хэширования массива преобразует вашу строку в целое число, которое он может затем использовать для адресации сегмента в массиве.Массивы PHP не являются настоящими / реальными массивами - они представляют собой своего рода внутреннюю компоновку HashMap.Учитывая, что несколько строк могут сводиться к одному и тому же хешу, каждая корзина представляет собой список.Если в одном сегменте есть несколько элементов, каждый ключ должен быть оценен.Само собой разумеется, что короткие клавиши сравниваются быстрее, чем 1 МБ текста.
TL; DR: хотя вы не ограничены PHP, вы должны ограничить себя.Если у вас достаточно длинные строки, попробуйте выполнить их через md5 () или sha1 () (или любую другую функцию хеширования), чтобы уменьшить длину ключа.