混淆多维数组和合并

I have had success merging two arrays by difference using the following code:

$a=array("2013-08-22"=>"12","2013-08-25"=>"5","2013-08-27"=>"10");
$b=array("2013-08-22"=>"1","2013-08-23"=>"3","2013-08-25"=>"5","2013-08-27"=>"10","2013-08-29"=>"5");

foreach ($b as $key => $value){
    if(!array_key_exists($key, $a)){
        $a[$key]=0;
    }
}

This will return:

Array
(
    [2013-08-22] => 0
    [2013-08-23] => 0
    [2013-08-25] => 5
    [2013-08-27] => 10
    [2013-08-29] => 0
    [2013-12-22] => 12
)

The idea is for a to additionally hold the elements from b that are not present in a.

I am having issues now doing the same thing for the following array format:

$a=array(array("2013-12-22","12"),array("2013-08-25","5"),array("2013-08-27","10"));
$b=array(array("2013-08-22","1"),array("2013-08-23","3"),array("2013-08-25","5"),array("2013-08-27","10"),array("2013-08-29","5"));

I went to try this:

foreach ($b as $key => $value){
    if(!array_key_exists($key, $a)){
        $a[$key]=array($value[0], 0);
    }
}

But the returned result is far from what I need:

Array
(
    [0] => Array
        (
            [0] => 2013-12-22
            [1] => 12
        )

    [1] => Array
        (
            [0] => 2013-08-25
            [1] => 5
        )

    [2] => Array
        (
            [0] => 2013-08-27
            [1] => 10
        )

    [3] => Array
        (
            [0] => 2013-08-27
            [1] => 0
        )

    [4] => Array
        (
            [0] => 2013-08-29
            [1] => 0
        )

)

I understand they keys are no longer the dates, but how should I go about checking each array and making sure I don't get double entries?

$a = array(
    array("2013-12-22","12"),
    array("2013-08-25","5"),
    array("2013-08-27","10"));
$b = array(
    array("2013-08-22","1"),
    array("2013-08-23","3"),
    array("2013-08-25","5"),
    array("2013-08-27","10"),
    array("2013-08-29","5"));
$exists = array();
foreach ($a as $data) {
    $exists[$data[0]] = 1;
}
foreach ($b as $data) {
    if (array_key_exists($data[0], $exists)) {
        continue;
    }
    $a[] = array($data[0], $data[1]);
}

$a now contains:

array(6) {
  [0]=>
  array(2) {
    [0]=>
    string(10) "2013-12-22"
    [1]=>
    string(2) "12"
  }
  [1]=>
  array(2) {
    [0]=>
    string(10) "2013-08-25"
    [1]=>
    string(1) "5"
  }
  [2]=>
  array(2) {
    [0]=>
    string(10) "2013-08-27"
    [1]=>
    string(2) "10"
  }
  [3]=>
  array(2) {
    [0]=>
    string(10) "2013-08-22"
    [1]=>
    string(1) "1"
  }
  [4]=>
  array(2) {
    [0]=>
    string(10) "2013-08-23"
    [1]=>
    string(1) "3"
  }
  [5]=>
  array(2) {
    [0]=>
    string(10) "2013-08-29"
    [1]=>
    string(1) "5"
  }
}