Bonjour,
Y a-t-il une fonction permettant de transposer un tableau ?
Merci
Bonjour,
Y a-t-il une fonction permettant de transposer un tableau ?
Merci
Salut,
La transposition consiste à inverser lignes et colonnes.
Par exemple, le tableau suivant :
donnera, une fois transposé :1 a b c
2 d e f
3 g h i
Cela existe sous Excel (en collage spécial)1 2 3
a d g
b e h
c f i
Je crois pas qu'il y est de fonction mais tu dois pouvoir trouver l'algorithme non ?
Oui, bien sûr, ca devrait pas être trés compliqué. Mais si php pouvait me le faire en une ligne, ça aurait été encore plus simple.Envoyé par Elwyn
Comme le tableau d'origine est, en fait, un recordset, je vais devoir créer un tableau supplémentaire.
Bon, ben, j'ai plus qu'à m'y mettre![]()
j'm'ennuyais ;o)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 <?php $liste=array( array(1,2,3,4,5), array(6,7,8,9,10), array(11,12,13,14,15), ); $tab=array(); foreach($liste as $value) { foreach($value as $k=>$v) { $tab[$k][]=$v; } } function affiche($tableau) { echo '<table border=1>'; foreach($tableau as $ligne) { echo '<tr>'; foreach($ligne as $element) { echo "<td>$element</td>"; } echo '</tr>'; } echo '</table>'; } affiche($liste); echo '<br>'; affiche($tab); ?>
Par contre, je ne suis pas contre un coup de main sur la structure du tableau final parce que, la syntaxe des tableaux imbriqués, c'est pas mon fort![]()
Dans mon cas, le recordset remonte, par mois, disons une quantité (d'essence), un kilométrage, le nom de la pompe et une consommation :
Les noms des colonnes ne faisant pas partie du recordset, bien sûr.Mois | Vol | Kms | Pompe | Conso
1 | 50 | 650 | Esso | 7.7
2 | 45 | 630 | BP | 7.14
3 | 56 | 700 | Esso | 8
...
Je voudrais obtenir quelque chose du genre :
La valeur des mois n'étant pas "récupérée" puisqu'elle correspond à l'ordre naturel des données. Par exemple, pour 'Vol', la valeur 50 correspond au mois 1, 45 au mois 2, 56 au mois 3, etc.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $tab('Vol' => (50, 45, 56, ...), 'Kms' => (650, 630, 700, ...), 'Pompe' => ('Esso', 'BP', 'Esso', ...), 'Conso' => (7.7, 7.14, 8, ...))
Pour ajouter une donnée je feraisComment je déclare ce tableau au début ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $tab['Vol'][] = $Valeur; // 56 par exemple pour la 3ème ligne
Si tu récupères les premières cases de chaque ligne ([0]), tu les mets dans un tableau, que tu mets à la première ligne du tableau transposé...et ainsi de suite pour toutes les lignes.
Partager