Maison > développement back-end > tutoriel php > 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
Libérer: 2024-10-25 10:16:02
original
277 Les gens l'ont consulté

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'
    ]
];
Copier après la connexion

Résultat souhaité :

$comb = [
    [12, '1999-06-12'],
    [13, '2000-03-21'],
    [14, '2006-09-31']
];
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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']
]
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal