Heim >Backend-Entwicklung >PHP-Tutorial >Wie rufe ich mit PDO assoziative Arrays ab, die nach einer bestimmten Spalte gruppiert sind?
Frage:
In einer Datenbank mit mehreren Spalten (z. B. „Name“, „Alter“, „Geschlecht“ und „Position“), wie können wir assoziative Arrays in einem bestimmten Format mithilfe der fetchAll-Methode von PDO abrufen, wobei der Schlüssel jedes Arrays ein Feld aus einer angegebenen Spalte ist (z. B. „Name“ ) und die Werte sind die entsprechenden Zeilen für diesen Schlüssel?
Antwort:
Mit der fetchAll-Methode von PDO können wir die folgenden Flags angeben, um das gewünschte Ergebnis zu erzielen:
<code class="php">->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE);</code>
Durch die Kombination von FETCH_GROUP und FETCH_UNIQUE gruppiert PDO die Ergebnisse automatisch nach der angegebenen Spalte und legt die erste Spalte als Schlüssel für jede Gruppe fest, während doppelte Datensätze ausgeschlossen werden. Dadurch entfällt die zusätzliche Verschachtelungsebene oder die Notwendigkeit von Nachbearbeitungsvorgängen wie aktuell.
Beispiel:
Betrachten Sie den folgenden Beispieldatensatz:
name | age | sex | position |
---|---|---|---|
Antony | 34 | M | programmer |
Sally | 30 | F | manager |
Matthew | 28 | M | designer |
Mit der empfohlenen Abrufmethode können wir das gewünschte Ergebnisarray abrufen:
<code class="php">$result = $pdo->query('SELECT * FROM employee')->fetchAll(\PDO::FETCH_GROUP|\PDO::FETCH_UNIQUE); print_r($result);</code>
Dadurch wird das folgende assoziative Array ausgegeben:
Array ( [Antony] => Array ( [age] => 34 [sex] => M [position] => programmer ) [Sally] => Array ( [age] => 30 [sex] => F [position] => manager ) [Matthew] => Array ( [age] => 28 [sex] => M [position] => designer ) )
Das obige ist der detaillierte Inhalt vonWie rufe ich mit PDO assoziative Arrays ab, die nach einer bestimmten Spalte gruppiert sind?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!