Maison  >  Article  >  développement back-end  >  Comment regrouper des tableaux associatifs par valeurs de colonne à l'aide de PDO ?

Comment regrouper des tableaux associatifs par valeurs de colonne à l'aide de PDO ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 07:39:02805parcourir

How to Group Associative Arrays by Column Values Using PDO?

PDO : regroupement de tableaux associatifs par valeurs de colonne

Le regroupement de données par valeurs de colonne spécifiques peut être utile pour organiser et manipuler des ensembles de données. Cette question explore un moyen d'y parvenir en utilisant la méthode fetchAll de PDO.

L'exemple fourni montre un ensemble de données d'employés avec des colonnes telles que le nom, l'âge, le sexe et le poste. Le but est d'obtenir un tableau associatif regroupé par la colonne de nom, résultant en une structure de tableau comme :

[
  'Antony' => ['age' => 34, 'sex' => 'M', 'position' => 'programmer'],
  'Sally' => ['age' => 30, 'sex' => 'F', 'position' => 'manager'],
  'Matthew' => ['age' => 28, 'sex' => 'M', 'position' => 'designer'],
]

L'approche initiale utilisant PDO::FETCH_GROUP|PDO::FETCH_ASSOC introduit des niveaux d'imbrication indésirables. Pour résoudre ce problème, la question suggère d'utiliser une fonction de rappel avec PDO::FETCH_GROUP|PDO::FETCH_ASSOC|PDO::FETCH_FUNC. Cependant, il rencontre des problèmes avec la fonction de rappel recevant des éléments individuels au lieu de tableaux.

La solution à ce problème consiste à utiliser PDO::FETCH_GROUP|PDO::FETCH_UNIQUE. Cette approche désigne la première colonne comme clé du tableau et définit les colonnes restantes comme valeurs, produisant le tableau associatif groupé souhaité sans imbrication ou manipulation de tableau inutile.

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