Irgendwie komme ich manchmal selbst auf eine akzeptable Lösung, gerade dann, wenn ich vorher einen Beitrag in einem Forum geschrieben habe. Habe doch keine For-Schleifen benutzen müssen, ich kann aber nicht einschätzen ob das hier jetzt bei wirklich vielen Datensätzen performant ist.
Wenn jemand eine bessere Lösung findet freue ich mich natürlich :)
Falls sonst jemand mal über dieses - sicher nicht alltägliche - Problem stoßen sollte, hier meine Lösung:
in $result steckt also das Ergebnis-Array der Datenbankabfrage
// ich erzeuge ein assoziatives Array für alle Feldwerte die NULL sein können und nehme pauschal mal an, dass alle keinen Inhalt haben (0)
$write = array("name" => 0, "tel" => 0);
// in dieser Schleife durchsuche das Ergebnisarray und setze, wenn ein Wert existiert, den entsprechenden Wert in $write auf 1
reset ($write);
while (list ($key, $val) = each ($write)) {
foreach ($result as $teilresult) { // je Datendatz Benutzer
if ($teilresult[$key] != "") $write[$key] = 1;
}
}
// im Array $write steht jetzt genau drin, welche Felder ich in die Tabelle schreiben muss, weil Daten enthalten sind (1) oder welche Felder leer sind (0)
reset ($write);
while (list ($key, $val) = each ($write)) {
echo "$key => $val\n";
}