Uasort with array给出未定义的索引

I've got the following array as an example

array(3) {
["date"]=>
    array(6) {
    [0]=>
    string(19) "2014-03-12 00:00:00"
    [1]=>
    string(19) "2014-03-12 08:30:00"
    [2]=>
    string(19) "2014-03-10 08:00:00"
    [3]=>
    string(19) "2014-03-11 08:00:00"
    [4]=>
    string(19) "2014-03-11 08:00:00"
    [5]=>
    string(19) "2014-03-11 17:00:00"
}
["data"]=>
    array(6) {
    [0]=>
    string(115) "
2 tests were booked
"
    [1]=>
    string(316) "
08:30am
Matamata Class 1 R & F
"
    [2]=>
    string(319) "
08:00am-04:00pm
Truck Course
"
    [3]=>
    string(328) "
08:00am-03:30pm
Trade Ed Rot Class 2
"
    [4]=>
    string(326) "
08:00am-03:30pm
Trade Ed Tga Class 2
"
    [5]=>
    string(330) "
05:00pm-08:00pm
Tauranga Truck Course
"
}
["ad"]=>
    array(6) {
    [0]=>
    int(1)
    [1]=>
    int(0)
    [2]=>
    int(0)
    [3]=>
    int(0)
    [4]=>
    int(0)
    [5]=>
    int(0)
}
}

And this is my function:

function date_compare($a, $b) {
    return strtotime($a['date'])>strtotime($b['date']);
}

And I'm trying to sort all the data by date/time using the following uasort uasort($dayEvents, 'date_compare'); but I'm getting Notice: Undefined index: date for each one. I've searched for about an hour now with no luck, can anyone see what I'm doing wrong?

UPDATE: Ok so I've changed my array structure, but it's still not sorting the data by date?

Start array:

$dayEvents = array();
$dayEvents['output'] = array();

And it is assigned like so:

$dayEvents['output'][] = array('date' => $dateStamp, 'data' => $dataOutput, 'ad' => $allDay);

Example output:

array(1) {
["output"]=>
  array(6) {
    [0]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 00:00:00"
      ["data"]=>
      string(115) "
2 tests were booked
"
      ["ad"]=>
      int(1)
    }
    [1]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 08:30:00"
      ["data"]=>
      string(316) "
08:30am
Matamata Class 1 R & F
"
      ["ad"]=>
      int(0)
}
    [2]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 08:00:00"
      ["data"]=>
      string(319) "
08:00am-04:00pm
Truck Course
"
      ["ad"]=>
      int(0)
    }
    [3]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 08:00:00"
      ["data"]=>
      string(328) "
08:00am-03:30pm
Trade Ed Rot Class 2
"
      ["ad"]=>
      int(0)
    }
    [4]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 08:00:00"
      ["data"]=>
      string(326) "
08:00am-03:30pm
Trade Ed Tga Class 2
"
      ["ad"]=>
      int(0)
    }
    [5]=>
    array(3) {
      ["date"]=>
      string(19) "2014-03-12 17:00:00"
      ["data"]=>
      string(330) "
05:00pm-08:00pm
Tauranga Truck Course
"
      ["ad"]=>
      int(0)
    }
}
}

The statement to sort it:

if(count($dayEvents['output'])>1) {
    uasort($dayEvents, 'date_compare');
}

And the function itself:

function date_compare($a, $b) {
    return strtotime($a['date']) > strtotime($b['date']);
}

I'm no longer getting the undefined index error, but it's still not sorting by date? Can anyone see what I'm doing wrong?

Well ad is just an array with zeros...

Are you trying to sort the date array?

<?php

$dayEvents = array(
    "date" => array(
        "2014-03-12 08:30:00",
        "2014-03-10 08:00:00",
        "2014-03-11 08:00:00",
        "2014-03-11 08:00:00",
        "2014-03-11 17:00:00"
    ),
    "ad" => array(
        0,
        0,
        0,
        0,
        0
    )
);

function date_compare($a, $b) {
    return strtotime($a) > strtotime($b);
}

usort($dayEvents['date'], 'date_compare');

var_dump($dayEvents);

Output:

array(2) {
  ["date"]=>
  array(5) {
    [0]=>
    string(19) "2014-03-10 08:00:00"
    [1]=>
    string(19) "2014-03-11 08:00:00"
    [2]=>
    string(19) "2014-03-11 08:00:00"
    [3]=>
    string(19) "2014-03-11 17:00:00"
    [4]=>
    string(19) "2014-03-12 08:30:00"
  }
  ["ad"]=>
  array(5) {
    [0]=>
    int(0)
    [1]=>
    int(0)
    [2]=>
    int(0)
    [3]=>
    int(0)
    [4]=>
    int(0)
  }
}