В 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
массив 🙁
Может ли кто-нибудь любезно объяснить, почему происходит это странное поведение и как я могу это исправить, пожалуйста? Результатом является мой желаемый результат, за исключением неправильного индекса массива за октябрь, ноябрь и декабрь. Спасибо!
10, 11 и 12 являются числовыми ключами, где 01, 02 и т. Д. Являются именованными ключами, что делает php, пересчитывая пронумерованные ключи. Их 3, так что 0,1,2. Именованные ключи не пересчитываются (как они должны?). Чтобы также сохранить целочисленные ключи, используйте
array_reverse($months, true);
Других решений пока нет …