Heim  >  Artikel  >  Datenbank  >  Wie kann ich Schlüssel-Wert-Paare effizient aus einer PDO-Abfrage als assoziatives Array abrufen?

Wie kann ich Schlüssel-Wert-Paare effizient aus einer PDO-Abfrage als assoziatives Array abrufen?

DDD
DDDOriginal
2024-11-24 18:06:19559Durchsuche

How Can I Efficiently Fetch Key-Value Pairs from a PDO Query as an Associative Array?

PDO FetchAll Group Key-Value Pairs into Associative Array

Bei der Arbeit mit Abfragen, die Schlüssel-Wert-Paare zurückgeben, ist es oft wünschenswert, sie abzurufen die Ergebnisse als assoziatives Array. Betrachten Sie die folgende Abfrage:

SELECT `key`, `value` FROM `settings`;

Das Ziel besteht darin, ein assoziatives Array zu erhalten, in dem die Schlüssel der Schlüsselspalte und die Werte der Wertespalte entsprechen.

Der traditionelle Ansatz beinhaltet das Abrufen die Ergebnisse mithilfe von PDO::FETCH_ASSOC und anschließendes manuelles Erstellen des assoziativen Arrays mithilfe einer Schleife:

$settings_flat = $db
    ->query("SELECT `name`, `value` FROM `settings`;")
    ->fetchAll(PDO::FETCH_ASSOC);

$settings = array();

foreach ($settings_flat as $setting) {
    $settings[$setting['name']] = $setting['value'];
}

Es gibt jedoch eine Effizientere Möglichkeit, das gleiche Ergebnis mit PDO::FETCH_KEY_PAIR zu erzielen:

$q = $db->query("SELECT `name`, `value` FROM `settings`;");
$r = $q->fetchAll(PDO::FETCH_KEY_PAIR);

Diese Methode gibt direkt ein assoziatives Array zurück, in dem die Schlüssel der Schlüsselspalte und die Werte der Wertespalte entsprechen.

Dieser Ansatz ist nicht nur prägnanter, sondern vermeidet auch unnötige Schleifen und Array-Erstellung. Es ist eine praktische und effiziente Lösung zum Konvertieren von Schlüssel-Wert-Paarergebnissen in ein assoziatives Array.

Das obige ist der detaillierte Inhalt vonWie kann ich Schlüssel-Wert-Paare effizient aus einer PDO-Abfrage als assoziatives Array abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn