IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] Transposer un tableau [FAQ]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut [Tableaux] Transposer un tableau
    Bonjour,

    Y a-t-il une fonction permettant de transposer un tableau ?

    Merci

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut
    Salut,

    tu veux dire quoi par 'transposer' ?

  3. #3
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Salut,

    La transposition consiste à inverser lignes et colonnes.
    Par exemple, le tableau suivant :
    1 a b c
    2 d e f
    3 g h i
    donnera, une fois transposé :
    1 2 3
    a d g
    b e h
    c f i
    Cela existe sous Excel (en collage spécial)

  4. #4
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Je crois pas qu'il y est de fonction mais tu dois pouvoir trouver l'algorithme non ?

  5. #5
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    Citation Envoyé par Elwyn
    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.

    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

  6. #6
    Membre Expert

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Par défaut
    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);
     
    ?>

  7. #7
    Membre confirmé Avatar de Ricou13
    Inscrit en
    Août 2002
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 292
    Par défaut
    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 :
    Mois | Vol | Kms | Pompe | Conso
    1 | 50 | 650 | Esso | 7.7
    2 | 45 | 630 | BP | 7.14
    3 | 56 | 700 | Esso | 8
    ...
    Les noms des colonnes ne faisant pas partie du recordset, bien sûr.
    Je voudrais obtenir quelque chose du genre :
    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, ...))
    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.

    Pour ajouter une donnée je ferais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab['Vol'][] = $Valeur; // 56 par exemple pour la 3ème ligne
    Comment je déclare ce tableau au début ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Coloriser un tableau à partir de mon code
    Par pod1978 dans le forum Langage
    Réponses: 3
    Dernier message: 10/11/2005, 16h25
  2. Réponses: 11
    Dernier message: 09/11/2005, 13h59
  3. [Tableaux] submit un tableau de donnee
    Par naourass dans le forum Langage
    Réponses: 6
    Dernier message: 09/11/2005, 10h05
  4. [Tableaux] tri de tableau
    Par rdams dans le forum Langage
    Réponses: 19
    Dernier message: 08/11/2005, 13h46
  5. Réponses: 3
    Dernier message: 26/09/2005, 22h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo