zippex: leere "assoziative" Spalten entfernen

Beitrag lesen

Hallo!
Ich bekomme durch eine Datenbankabfrage folgendes Ergebnisarray:
$result[anzahl_ergebnisse-1]['assoziativ']

also z.B. bei zwei Datensätzen folgende Beispieldaten:
$result[0]['name']     -> Müller
$result[0]['tel']      -> 01701234567
$result[1]['name']     -> Mayer
$result[1]['tel']      -> 01711234567

Diese Daten möchte ich nun in einer Tabelle ausgeben, der Form
NAME     TEL
Müller   01701234567
Mayer    01711234567

Kein Problem bis hier hin, ABER angenommen für alle Datensätze (das können unter Umständen viele sein) wurde durchgehend KEINE Telefonnummer angegeben, dann soll die Spalte "TEL" in der Ausgabe auch gar nicht existieren.

Lösung die ich sehe: iterativ überprüfen "gibt es unter allen Datzensätzen eine telnummer" --> wenn die erste gefunden wurde, interne Variable setzen für "telefonnummer hinschreiben". Erst wenn das für alle Felder (ca. 15 dürfen NULL sein und müssen deshalb gecheckt werden) überprüft ist kann ich endlich die Tabelle hinschreiben.

Viel besser würde es mir gefallen, wenn es eine Funktion gäbe, die das selbständig (und effizienter) macht. Denn für die Lösung oben sehe ich schon zwei recht langsame geschachtelte for-Schleifen...

Gibt es vielleicht eine Funktion (die ich bei php.net übersehen habe) oder einen Trick, mit dem man solche leeren assoziativen Spalten löschen kann?

Ich vermute, dass die Lösung des Problems nur mit PHP erreicht werden kann und nicht durch Anpassen der MYSQL-Abfrage, lasse mich aber gerne vom Gegenteil überzeugen. Für diesen Fall die für das Beispiel oben passende entsprechende Abfrage-Funktion:

function foo() {
   $result=MYSQL_QUERY("SELECT p.name, n.nummer
   FROM person AS p JOIN nummern AS n ON p.id = n.id");
   $i = 0;
   while($array = mysql_fetch_array($result, MYSQL_ASSOC)) {
        $result[$i]=$array;
        $i++;
   }
   return $result;
}

Vielen Dank schon mal :)
mfG zippex