如何在未知数组长度PHP中的for循环中获得常见结果

I have a array of dates, I would like to get all values that are in all of them, thats my example:

$array = [
{"d1":["2016-01-04","2016-01-11","2016-01-18","2016-01-25","2016-02-01"]},
{"d2":["2016-01-05","2016-01-11","2016-01-19","2016-01-25","2015-12-12"]},
{"d3":["2016-01-05","2016-01-11","2016-01-25"]},
{"d4":["2016-01-04","2016-01-11","2016-01-25"]}
]

As result:

$result = ["2016-01-11", ,"2016-01-25"];

Here is a working example (can be optimized, but it should work):

$array = json_decode('[
{"d1":["2016-01-04","2016-01-11","2016-01-18","2016-01-25","2016-02-01"]},
{"d2":["2016-01-05","2016-01-11","2016-01-19","2016-01-25","2015-12-12"]},
{"d3":["2016-01-05","2016-01-11","2016-01-25"]},
{"d4":["2016-01-04","2016-01-11","2016-01-25"]}
]');


$allArrays = array();

foreach ($array as $object) {
    foreach ($object as $datesArray) {
        array_push($allArrays, $datesArray);
    }
}

$sharedDates = call_user_func_array('array_intersect',$allArrays);

var_dump($sharedDates);