I think it is when an array keys starts with 0 (at least in my case) it casts the key as string, here is my array:
array (size=2)
2015 =>
array (size=9)
'04' => string 'Array(2)' (length=8)
'05' => string 'Array(2)' (length=8)
'06' => string 'Array(2)' (length=8)
'07' => string 'Array(2)' (length=8)
'08' => string 'Array(2)' (length=8)
'09' => string 'Array(2)' (length=8)
10 => string 'Array(2)' (length=8)
11 => string 'Array(2)' (length=8)
12 => string 'Array(2)' (length=8)
2016 =>
array (size=4)
'01' => string 'Array(2)' (length=8)
'02' => string 'Array(2)' (length=8)
'03' => string 'Array(2)' (length=8)
'04' => string 'Array(2)' (length=8)
When I output the array it messes with the order, they need to be in sequential order but the integer keys are output first then the string keys second.
How can I force them to be either integers or strings and not a mixture of both?
EDIT::
If I use the following suggested below (int) like so:
$periods[$diaryActivityScore->getDate()->format('Y')][(int)$diaryActivityScore->getDate()->format('m')]['data']
I get the following output from the array:
array (size=2)
2015 =>
array (size=11)
'04' => string 'Array(2)' (length=8)
'05' => string 'Array(2)' (length=8)
'06' => string 'Array(2)' (length=8)
'07' => string 'Array(2)' (length=8)
'08' => string 'Array(2)' (length=8)
'09' => string 'Array(2)' (length=8)
10 => string 'Array(2)' (length=8)
11 => string 'Array(2)' (length=8)
12 => string 'Array(2)' (length=8)
5 => string 'Array(1)' (length=8)
8 => string 'Array(1)' (length=8)
2016 =>
array (size=4)
'01' => string 'Array(2)' (length=8)
'02' => string 'Array(2)' (length=8)
'03' => string 'Array(2)' (length=8)
'04' => string 'Array(2)' (length=8)