Utilisation de PDO pour récupérer un tableau associatif regroupé par valeurs de colonnes
Dans les opérations de base de données, il est souvent nécessaire de récupérer des données organisées dans des formats spécifiques . L'un de ces formats est un tableau associatif regroupé par les valeurs d'une colonne particulière. Cela permet un accès facile aux données basées sur la colonne spécifiée. Voici une discussion sur la façon d'y parvenir en utilisant PDO.
Problème : Étant donné un tableau avec les données suivantes :
name | age | sex | position |
---|---|---|---|
Antony | 34 | M | programmer |
Sally | 30 | F | manager |
Matthew | 28 | M | designer |
Objectif : Récupérez les données au format suivant :
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 ) )
Solution : Pour y parvenir, vous pouvez utiliser la méthode fetchAll de PDO avec les modes suivants :
$pdo->query('SELECT * FROM employee')->fetchAll(PDO::FETCH_GROUP|PDO::FETCH_UNIQUE);
Le Le mode FETCH_GROUP regroupe les résultats par les valeurs de la première colonne. Le mode FETCH_UNIQUE limite les résultats à une seule ligne pour chaque valeur unique dans la colonne de regroupement. En conséquence, vous obtenez un tableau associatif avec les valeurs des colonnes servant de clés et les colonnes restantes comme valeurs.
Exemple de sortie :
Array ( [Antony] => Array ( [0] => (age: 34, sex: M, position: programmer) ) [Sally] => Array ( [0] => (age: 30, sex: F, position: manager) ) [Matthew] => Array ( [0] => (age: 28, sex: M, position: designer) ) )
Notez que le la sortie contient des tableaux avec une seule ligne pour chaque groupe. En effet, le mode FETCH_UNIQUE garantit que seule la première ligne de chaque groupe est récupérée.
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!