Meine Herren!
Der Primär-Schlüssel ist nunmal eine Maßnahme, die im Kontext von relationalen Datenbanksystem zweckmäßig ist, weil Zeilen schnell identifiziert werden können und man damit ein Merkmal hat, um Relationen zwischen verschiedenen Tabellen zu definieren. Meiner Meinung nach ist dieser Primärschlüssel ein privates Implementations-Detail des Datenbank-Entwurfs und ich sehe keine technische Notwendigkeit diesen Schlüssel zu zweckentfremden und auch in PHP als Array-Schlüssel wiederzuverwenden.
Und warum sollte man diesen Schlüssel nicht zum schnellen Zugreifen unter PHP nutzen können/dürfen? Ich finde ihn selbst dann nützlich, wenn man die Relationen des DBMS in eine direkt referenzierende Objektstruktur zu bringen gedenkt. Wenn man solchen eine baumähnliche Struktur aufzubauen gedenkt, muss man zunächst wissen, wo man die Datensätze aus der flachen Ergebnismenge einzuhängen hat. Ein zugriff per ID ist dabei wesentlich einfacher also die Elemente durch Iteratione zu suchen.
Da geb ich dir Recht, in diesem Fall macht es tatsächlich Sinn den Primärschlüssel wiederzuverwenden. Angenommen, das Array läge jetzt aber bereits in der Struktur vor, wie ich sie hier versuche zu verteidigen, dann könnte man Toms Struktur für diesen Fall so herbei führen:
$keys = array_column( $rows, 'id' );
$rowsHash = array_combine( $keys, $rows );
“All right, then, I'll go to hell.” – Huck Finn