Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour transposer un tableau d'objets bidimensionnel

Comment utiliser PHP pour transposer un tableau d'objets bidimensionnel

PHPz
PHPzoriginal
2023-04-23 09:10:36658parcourir

En PHP, nous utilisons souvent des tableaux pour stocker et manipuler des données. Dans des applications pratiques, nous devons parfois transposer un tableau d'objets bidimensionnel. La soi-disant transposition consiste à transformer les lignes d'origine en colonnes et les colonnes en lignes. Cet article explique comment utiliser PHP pour transposer un tableau d'objets bidimensionnel.

  1. Données originales

Supposons que nous ayons un tableau d'objets bidimensionnel $data, qui contient les noms des étudiants et les notes de chaque matière, par exemple :

$data = array(
  array('name'=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93),
  array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89),
  array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94)
);

Ce tableau peut être représenté sous la forme d'un tableau 3x4, comme ci-dessous :

Nom Math Anglais Chinois
Xiao Ming 90 85 93
小红 88 92 89
Xiaogang 95 87 94

Notre objectif est de transposer ce tableau en un tableau 4x3, où la première ligne est le nom du sujet, et le reste sont les notes de chacun étudiant . Comme indiqué ci-dessous :


Xiao Ming Xiao Hong Xiao Gang
Math 90 88 95
Anglais 85 92 87
Chinois 93 89 94
  1. Méthode de transposition

Pour transposer un tableau à deux dimensions, nous pouvons suivre les étapes ci-dessous :

  • Créez-en un nouveau Deux -tableau dimensionnel $result, le nombre de lignes est le nombre de colonnes du tableau d'origine, et le nombre de colonnes est le nombre de lignes du tableau d'origine
  • Parcourez le tableau d'origine, échangez l'indice de ligne et l'indice de colonne de ; chaque élément et stockez-le dans $result. La position correspondante dans
  • renvoie $result.

En PHP, nous pouvons utiliser le code suivant pour implémenter la transposition d'un tableau d'objets bidimensionnels :

function transpose($data) {
    //获取原数组的行数和列数
    $rows = count($data);
    $cols = count($data[0]) - 1;

    //创建一个新的二维数组
    $result = array();
    for($i=0; $i<=$cols; $i++) {
        $result[$i] = array();
    }

    //遍历原数组,将每个元素的行下标和列下标互换
    for($row=0; $row<$rows; $row++) {
        for($col=1; $col<=$cols; $col++) {
            $result[$col-1][$row] = $data[$row][&#39;name&#39;];
            $result[$col-1][$row+1] = $data[$row]["Math"];
            $result[$col-1][$row+2] = $data[$row]["English"];
            $result[$col-1][$row+3] = $data[$row]["Chinese"];
        }
    }

    return $result;
}

Cette fonction accepte un tableau d'objets bidimensionnels $data comme paramètre et renvoie un tableau bidimensionnel transposé. L'implémentation spécifique est divisée en les étapes suivantes :

  • Obtenez d'abord le nombre de lignes et de colonnes du tableau d'origine. Notez qu'ici est en fait le nombre de colonnes moins un, car le premier élément est le nom plutôt que le sujet ;
  • Ensuite, créez deux nouveaux Le nombre de lignes du tableau dimensionnel $result est le nombre de colonnes du tableau d'origine, et le nombre de colonnes est le nombre de lignes du tableau d'origine
  • Puis à travers des doubles boucles, le l'indice de ligne et l'indice de colonne de chaque élément du tableau d'origine sont interchangés, stockez-les à l'emplacement correspondant dans $result
  • Enfin, renvoyez $result.

Notez que cette fonction est implémentée pour une structure de tableau originale spécifique. Si la structure originale du tableau est différente, la fonction devra peut-être être modifiée en conséquence.

  1. Exemple d'utilisation

Ce qui suit est un exemple d'utilisation :

$data = array(
    array(&#39;name&#39;=>'小明', 'Math'=>90, 'English'=>85, 'Chinese'=>93),
    array('name'=>'小红', 'Math'=>88, 'English'=>92, 'Chinese'=>89),
    array('name'=>'小刚', 'Math'=>95, 'English'=>87, 'Chinese'=>94)
);

$result = transpose($data);

//输出转置后的数组
foreach($result as $row) {
    echo implode("\t", $row) . "\n";
}

Le résultat de sortie est le suivant :

小明    小红    小刚
90      88      95
85      92      87
93      89      94
  1. Résumé

Cet article présente comment utiliser PHP pour implémenter la transposition d'un objet bidimensionnel tableau. La transposition est une opération très courante qui permet d'échanger facilement des données entre des lignes et des colonnes pour mieux répondre à certains besoins. Bien que PHP fournisse de nombreuses fonctions de traitement de tableaux, la transposition ne fournit pas de fonction correspondante, mais nous pouvons utiliser une simple boucle pour y parvenir.

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