Witam chciałbym posortować (przy pomocy uasort())tablice o strukturze jak poniżej (tylko liczby naturalne) po jakimś kluczu, załóżmy że po kluczu B a jeżeli dany klucz nie istnieje w podtablicy to taka podtablica trafia na koniec. Moje rozwiązanie poniżej działa ale może ktoś zaproponuje coś bardziej eleganckiego bo to zagranie z
if (!array_key_exists('B',$a)) { $a['B'] = -1; } itp. mi się nie podoba a nie przychodzi mi teraz nic lepszego do głowy.

Kod
$a = array(
        array(
            "A" => 1,
            "B" => 2,
            "C" => 3,
            "D" => 4
            ),
        array(
            "A" => 6,
            "B" => 3,
            "D" => 4
            ),
        array(
            "A" => 2,
            "B" => 5,
            "D" => 4
            ),
        array(
            "A" => 2
            ),
        array(
            "A" => 2,
            "B" => 4,
            "D" => 4
            ),
        array(
            "A" => 1,
            "D" => 4
            )
        );
        
function cmp($a, $b) {
    if (!array_key_exists('B',$a)) {
        $a['B'] = -1;
    }
    if (!array_key_exists('B',$b)) {
        $b['B'] = -2;
    }
    if ($a['B'] == $b['B']) {
        return 0;
    }
    return $a['B'] < $b['B']
}

uasort($a, 'cmp');