Nikolino
@Nikolino

Что необходимо для того, чтобы массив можно было считать ассоциативным?

В википедии говорится, что ассоциативный массив, это тот, у которого есть ключ и значение.

И в PHP и в JavaScript у каждого элемента массива есть ключ. Означает ли это, что и в PHP и в JavaScript все массивы являются ассоциативными?

В книжке Котерова по PHP, автор пишет, что "строго говоря", все массивы в PHP являются ассоциативными, ведь у всех элементов есть ключ.

В JavaScript тоже у всех элементов массива есть ключ, но почему-то ассоциативным его не называют, возможно потому, что в качестве индекса могут быть только числа.
А если в JS хочется в ключах использовать строки, то нужно использовать объекты.

Я не силен в других языках, и образования нет соответствующего.
Подскажите, существуют ли ЯП, в которых у элементов массива может и не быть ключа? Если так, то какой в них смысл, если мы не можем получить определенное значение (ключа ведь нет)?
  • Вопрос задан
  • 39 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Есть языки, в которых в качестве ключа может быть ссылка на функцию.
Также ключом может быть ссылка на объект.
Причем, можно сделать пару ключ-значение, где ключ и значение будут указывать на один и тот же объект.
Иногда это полезно. Но в целом - извращение. Хотя если объект указывает сам на себя, то уже сложновато говорить о том, что есть ключ.

Вы всё правильно подметили. Если в качестве ключей - числа, то есть индексы, то массив индексированный. Такой массив не принято называть ассоциативным, хотя формально можно работать, как с ассоциативным (зависит от ЯП). Здесь, правда, есть тонкость - индексы могут быть не по порядку, но это детали.

Вообще без ключа не получится, т.к. значения должны где-то храниться, иначе они просто не будут частью массива, а будут отдельными значениями или выражениями, сами по себе. Массив их объединяет и в качестве адресации использует ключи (или индексы).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы