Порядок ассоциативного массива гарантирован в PHP?

Это зависит от того, можете ли вы разделить класс на подклассы.

Редактировать: я имею в виду, что вы должны спросить себя: «Этот метод применим к этому классу или он принадлежит подклассу?»

Например,

Class Animal
  - dog_bark()
dog_bark () может быть перемещен в класс с именем Dog, а метод переименован в bark ()
11
задан Jimmy Sawczuk 8 January 2012 в 01:08
поделиться

4 ответа

Из Руководства по PHP

массив в PHP на самом деле является упорядоченным карта. Карта - это тип, который связывает значения в ключи. Этот тип оптимизирован для нескольких различных целей; может быть рассматривается как массив, список (вектор), хэш-таблица (реализация карта), словарь, сборник, стек, очереди и, возможно, др.

и

Массивы упорядочены. Заказ может быть изменено с помощью различной сортировки functions.

Так что вы можете быть уверены (по крайней мере, в настоящее время), что порядок будет поддерживаться. Я был бы очень удивлен, если бы это поведение изменилось, потому что оно четко указано, и из-за этого будет огромное количество кода, который полагается на него.

21
ответ дан 3 December 2019 в 04:53
поделиться

Поскольку массивы всегда упорядочены, и самый простой и быстрый способ перебрать массив - это просто перейти от первого элемента к последнему (поэтому нет веских причин для изменения поведения для foreach ()), вы можете быть уверены, что это поведение не изменится.

1
ответ дан 3 December 2019 в 04:53
поделиться

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

1
ответ дан 3 December 2019 в 04:53
поделиться

Это никогда не изменится.

0
ответ дан 3 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

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