Maison >base de données >tutoriel mysql >Comment puis-je récupérer efficacement des paires clé-valeur à partir d'une requête PDO en tant que tableau associatif ?

Comment puis-je récupérer efficacement des paires clé-valeur à partir d'une requête PDO en tant que tableau associatif ?

DDD
DDDoriginal
2024-11-24 18:06:19652parcourir

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

PDO FetchAll Group Key-Value Pairs in Associative Array

Lorsque vous travaillez avec des requêtes qui renvoient des paires clé-valeur, il est souvent souhaitable de récupérer les résultats sous forme de tableau associatif. Considérons la requête suivante :

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

Le but est d'obtenir un tableau associatif où les clés correspondent à la colonne clé et les valeurs correspondent à la colonne valeur.

L'approche traditionnelle consiste à récupérer les résultats en utilisant PDO::FETCH_ASSOC puis en créant manuellement le tableau associatif à l'aide d'une boucle :

$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'];
}

Cependant, il existe un moyen plus efficace d'obtenir le même résultat en utilisant PDO::FETCH_KEY_PAIR :

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

Cette méthode renvoie directement un tableau associatif où les clés correspondent à la colonne clé et les valeurs correspondent à la colonne valeur.

Cette approche est non seulement plus concis, mais évite également les boucles et la création de tableaux inutiles. C'est une solution pratique et efficace pour convertir les résultats des paires clé-valeur en un tableau associatif.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn