В PHP массивы действительно больше похожи на «карты» или «ассоциативные массивы» в зависимости от того, какой термин вы хотите использовать.Они также могут следовать правилам обычного числового индексированного простого массива, что делает его еще более запутанным, когда он смешивается и сопоставляется, но это не проблема.
При доступе к массиву помните, что каждый элементможет содержать свой собственный массив.Когда вы используете оператор [], вы получаете элемент в этом месте, а затем можете работать непосредственно после этого для вызова функций-членов или дальнейшего доступа к элементам вложенного массива.
Это означает, что $ Details ['DescriptionData'] вернетмассив, и поскольку массивы могут обращаться к элементам с помощью [], мы можем затем связать другой доступ после этого: $ Details ['DescriptionData'] ['Ingredients'], который снова возвращает массив, чтобы мы могли в дальнейшем связать $ Details ['DescriptionData'] ['Ingredients'] ['Ingredient'], и это еще один массив, поэтому мы можем связать еще раз:
$ Details ['DescriptionData'] ['Ingredients'] ['Ingredient'] [0], который возвращаетstring "Water (Aqua)"
Строки могут также обращаться к отдельным символам с помощью оператора [], поэтому мы можем получить второй символ в Water, выполнив:
$ Details ['DescriptionData'] ['Ingredients'] [' Ingredient '] [0] [1] ===' a '
И если бы мы обращались к объекту внутри массива, вы могли бы сделать что-то вроде $ Array [' Index '] -> memberFunction();Если memberFunction вернул массив, вы можете получить такие вещи, как:
$ Array ['Index'] -> memberFunction () ['ReturnedArrayIndex'];Потому что каждый доступ работает с возвращаемым значением вещи слева от него.
Следует отметить, что такие большие цепочки являются хрупкими, потому что в любой момент, если что-то перестает существовать, там, где вы ожидаете этого, вы будетев конечном итоге с недопустимым выражением.Поэтому лучше избегать написания кода, подобного приведенному выше, даже если это важно для понимания работы доступа.