Sortierung eines mehrdimensionalen Arrays in PHP

Ich erstelle gerade eine Sortiermethode, die aus Werten einer MySQL-Abfrage besteht.

Hier ist eine kurze Ansicht des Arrays:

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

Es ist mir gelungen, einen normalen Usort basierend auf den numerischen ID-Werten zu erstellen, aber ich möchte das Array lieber nach dem Inhalt des Felds "Länder" sortieren (wenn es in diesem Fall einen festgelegten String, einen Ländercode enthält) und dann durch das ID-Feld.

Das folgende Snippet war meine erste Idee, wie man es macht, aber ich habe keine Ahnung, wie man es in eine funktionierende Funktion einbaut:

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

Wie würdest du es machen?

Vielen Dank!

Ich komme damit leider wirklich nicht weiter.

Hier ist, was ich im Moment habe, und es gibt mir nichts als Fehler: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");

Gibt es jemanden, der mir einen Hinweis geben könnte, wie es weitergeht?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage