I believe the problem is in your foreach statement. Instead of this:
foreach($dayEvents as $outputData) {
You need this:
foreach($dayEvents['output'] as $outputData) {
For the first statement, data is undefined, since you have a single element in that array called 'output'. In the second, 'data' should be defined.
You probably also need to add that into your uasort call:
uasort($dayEvents['output'], 'date_compare');