Classificando array multidimensional em PHP

Atualmente, estou criando um método de classificação que consiste em valores de uma consulta mysql.

Aqui está uma breve visão da matriz:

    Array
    (
        [0] => Array
            (
                ['id'] = 1;
                ['countries'] = 'EN,CH,SP';
            )
        [1] => Array
            (
                ['id'] = 2;
                ['countries'] = 'GE,SP,SV';
            )
    )

Consegui fazer um usort normal com base nos valores de ID numéricos, mas prefiro classificar o array pelo conteúdo do campo "countries" (se ele contiver uma string set, um código de país nesse caso) e, em seguida, pelo campo id.

O trecho a seguir foi minha primeira ideia de como fazê-lo, mas não tenho idéia de como incorporá-lo a uma função de trabalho:

in_array('EN', explode(",",$a['countries']) );

Como você faria?

Obrigado!

Eu realmente estou chegando a lugar nenhum com isso, infelizmente.

Aqui está o que eu tenho no momento, e está me dando nada além de erros:uasort() [function.uasort]: Invalid comparison function

function compare($a, $b) {
    global $usercountry;

        if ( in_array($usercountry, $a['countries']) && in_array($usercountry, $a['countries']) ) {
            $return = 0;
        }

        else if (in_array($usercountry, $a['countries'])) {
            $return = 1;
        }

        else {
            $return = -1;
        }

        return $return;


        }

        $array= usort($array, "compare");

Existe alguém que possa me dar uma pista de como continuar com isso?

questionAnswers(5)

yourAnswerToTheQuestion