Обратный массив в PHP с неправильными индексами

В PHP у меня есть такой массив:

Array (
[12] => Dec
[01] => Jan
[02] => Feb
[03] => Mar
[04] => Apr
[05] => May
[06] => Jun
[07] => Jul
[08] => Aug
[09] => Sep
[10] => Oct
[11] => Nov
)

Затем я делаю что-то вроде этого: $reverse_months = array_reverse($months);

То, что я не понимаю, почему результат получается так:

Array (
[0] => Nov
[1] => Oct
[09] => Sep
[08] => Aug
[07] => Jul
[06] => Jun
[05] => May
[04] => Apr
[03] => Mar
[02] => Feb
[01] => Jan
[2] => Dec
)

Вы можете ясно видеть, что последние три месяца года показатели оказались неверными по сравнению с оригинальными $months массив 🙁

Может ли кто-нибудь любезно объяснить, почему происходит это странное поведение и как я могу это исправить, пожалуйста? Результатом является мой желаемый результат, за исключением неправильного индекса массива за октябрь, ноябрь и декабрь. Спасибо!

1

Решение

10, 11 и 12 являются числовыми ключами, где 01, 02 и т. Д. Являются именованными ключами, что делает php, пересчитывая пронумерованные ключи. Их 3, так что 0,1,2. Именованные ключи не пересчитываются (как они должны?). Чтобы также сохранить целочисленные ключи, используйте

array_reverse($months, true);
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]