Organizing month order in a php array

Asked

Viewed 154 times

0

I used the function below to organize the orders of the months in ascending order, it works perfectly, but it loses the keys, when it creates the new array organized, keys start from 0 (zero) again

Array disorderly:

Array ( [39] => agosto [40] => agosto [41] => agosto [42] => agosto [43] => agosto [44] => agosto [45] => agosto [46] => agosto [48] => agosto [71] => novembro [69] => novembro [70] => novembro [64] => outubro [65] => outubro [66] => outubro [68] => outubro [49] => setembro [51] => setembro [52] => setembro [53] => setembro [54] => setembro [55] => setembro [56] => setembro [57] => setembro [59] => setembro [60] => setembro [62] => setembro )

Array ordered, after passing the function below, but losing the keys:

Array ( [0] => agosto [1] => agosto [2] => agosto [3] => agosto [4] => agosto [5] => agosto [6] => agosto [7] => agosto [8] => agosto [9] => setembro [10] => setembro [11] => setembro [12] => setembro [13] => setembro [14] => setembro [15] => setembro [16] => setembro [17] => setembro [18] => setembro [19] => setembro [20] => outubro [21] => outubro [22] => outubro [23] => outubro [24] => novembro [25] => novembro [26] => novembro )

and below the function used:

$sort = array('Janeiro', 'janeiro','Fevereiro', 
              'fevereiro','Março', 'março','Abril', 
              'abril','Maio', 'maio','Junho', 'junho',
              'Julho', 'julho','Agosto', 'Agosto',
              'Setembro', 'setembro','Outubro', 'outubro',
              'Novembro', 'novembro','Dezembro', 'dezembro');

usort($teste,
       function($value1, $value2) use ($sort) {
           return array_search($value1,$sort) > array_search($value2,$sort);
       }
);

My question is, how do I make this orderly order of months without losing the keys?

1 answer

0


I managed to solve only by changing the 'usort', by the 'uasort', sorts based on my base array ($Sort), but keeping the keys.

$sort = array('Janeiro', 'janeiro','Fevereiro', 
              'fevereiro','Março', 'março','Abril', 
              'abril','Maio', 'maio','Junho', 'junho',
              'Julho', 'julho','Agosto', 'Agosto',
              'Setembro', 'setembro','Outubro', 'outubro',
              'Novembro', 'novembro','Dezembro', 'dezembro');

uasort($teste,
       function($value1, $value2) use ($sort) {
           return array_search($value1,$sort) > array_search($value2,$sort);
       }
);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.