Maison  >  Article  >  développement back-end  >  Comment transposer une structure de données en colonnes dans un format basé sur des lignes en PHP ?

Comment transposer une structure de données en colonnes dans un format basé sur des lignes en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 10:16:02179parcourir

How to Transpose a Columnar Data Structure into Row-based Format in PHP?

Réorganisation des données en colonnes multidimensionnelles dans une structure basée sur des lignes

Étant donné un tableau associatif avec des données orientées colonnes, la tâche consiste à le transposer en un tableau multidimensionnel composé de lignes. Les données du tableau d'origine sont organisées par colonnes et l'objectif est de fusionner les valeurs de la même colonne en lignes.

Tableau d'origine :

$where = [
    'id' => [
        12,
        13,
        14
    ],
    'date' => [
        '1999-06-12',
        '2000-03-21',
        '2006-09-31'
    ]
];

Résultat souhaité :

$comb = [
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
];

Solution :

Un moyen efficace de réaliser cette restructuration des données consiste à parcourir les valeurs de chaque colonne en utilisant une boucle et combinez-les dans un tableau pour chaque ligne. Voici un exemple :

<code class="php">$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = [$id, $where['date'][$key]];
}</code>

Approche array_column() :

Une alternative élégante à la solution basée sur les boucles consiste à utiliser la fonction array_column(), qui extrait une colonne spécifique d'un tableau multidimensionnel.

<code class="php">$result = [];

foreach ($where['id'] as $key => $id) {
    $result[] = array_column($where, $key);
}</code>

La fonction array_column() renvoie la colonne spécifiée sous forme de tableau, qui peut ensuite être combinée avec les valeurs de la ligne correspondante.

Sortie :

Les deux solutions produiront le résultat souhaité :

[
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
]

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