Maison >développement back-end >Problème PHP >Comment utiliser PHP pour transposer un tableau d'objets bidimensionnel
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.
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 |
Pour transposer un tableau à deux dimensions, nous pouvons suivre les étapes ci-dessous :
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]['name']; $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 :
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.
Ce qui suit est un exemple d'utilisation :
$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) ); $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
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!