Ограничения ключей (индексов) ассоциативного массива PHP?

Если существуют какие-то ограничения для ключей массива в PHP? Длина? Не приемлемые строки?

В официальной документации найдено только это, но информации о ограничениях ключей нет.

Ключ может быть целым числом или строкой. Если ключ является стандартным представлением целого числа, он будет интерпретироваться как таковой (т.е. «8» будет интерпретирован как 8, а «08» будет интерпретирован как «08»). Поплавки в ключе усекаются до целого. Индексированные и ассоциативные типы массивов являются одним и тем же типом в PHP, который может содержать как целые, так и строковые индексы. *

Solutions Collecting From Web of "Ограничения ключей (индексов) ассоциативного массива PHP?"

Каков максимальный размер ключа для массива в PHP?

Этот вопрос почти то же самое. Но если вы не хотите доверять чему-либо неофициальному, просто придерживайтесь менее маленьких клавиш. Вы даже можете получить некоторые преимущества в производительности.

EDIT: И как написано в руководстве PHP :

Примечание. Нет ничего сложного в том, чтобы строка стала очень большой. PHP не накладывает ограничений на размер строки; единственным ограничением является доступная память компьютера, на котором работает PHP.

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

TL; DR: хотя вы не ограничены PHP, вы должны ограничить себя. Если у вас довольно длинные строки, попробуйте запустить их через md5 () или sha1 () (или любую другую функцию хеширования, фактически), чтобы уменьшить длину ключа.

вы уверены, что имеете в виду ключ? или вы имеете в виду ценность?

с ассоциативными массивами: $ array = новый массив (новый массив («ключ» => «значение»));

.. что касается ключа, который, как мне кажется, в теореме, нет ограничений на длину, но .. использование длинных клавиш – не очень хорошая идея, если вы захотите многократно их создать.

что касается значений, вы должны просто взять добычу на массивы вообще и какие типы данных разрешены и прочее ..

надеюсь это поможет..