<?php
'id' => '1',
'a_date' => '2016-04-30',
),
'id' => '2',
'a_date' => '2016-05-21',
),
'id' => '3',
'b_date' => '2016-05-30',
),
'id' => '4',
'b_date' => '2016-04-02',
),
);
array_multisort( array_map( function ( $value ) { return ( isset( $value[ 'a_date' ] ) ) ?
$value[ 'a_date' ] : $value[ 'b_date' ]; }, $array ), $array );
PD9waHAKIAokYXJyYXkgPSBhcnJheSgKICBhcnJheSAoCiAgICAnaWQnID0+ICcxJywKICAgICdhX2RhdGUnID0+ICcyMDE2LTA0LTMwJywKICApLAogIGFycmF5ICgKICAgICdpZCcgPT4gJzInLAogICAgJ2FfZGF0ZScgPT4gJzIwMTYtMDUtMjEnLAogICksCiAgYXJyYXkgKAogICAgJ2lkJyA9PiAnMycsCiAgICAnYl9kYXRlJyA9PiAnMjAxNi0wNS0zMCcsCiAgKSwKICBhcnJheSAoCiAgICAnaWQnID0+ICc0JywKICAgICdiX2RhdGUnID0+ICcyMDE2LTA0LTAyJywKICApLAopOwphcnJheV9tdWx0aXNvcnQoIGFycmF5X21hcCggZnVuY3Rpb24gKCAkdmFsdWUgKSB7IHJldHVybiAoIGlzc2V0KCAkdmFsdWVbICdhX2RhdGUnIF0gKSApID8gJHZhbHVlWyAnYV9kYXRlJyBdIDogJHZhbHVlWyAnYl9kYXRlJyBdOyB9LCAkYXJyYXkgKSwgJGFycmF5ICk7CnZhcl9kdW1wKCAkYXJyYXkgKTs=