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 :

Tableau php à deux dimensions


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Tableau php à deux dimensions
    Bonjour,

    Je suis face à un mur car malgré mes recherches je n'arrive pas à trouver une petite aide.
    Je vous explique :
    J'aimerai un script en php capable de parcourir un tableau à deux dimensions et qui contient des références et le nombre 1 pour avoir une tableau à deux dimension qui contient une fois la référence mais avec le nombre de fois qu'elle revient dans le tableau.

    Exemple
    (tableau non trié)

    20 1
    50 1
    65 1
    65 1
    20 1
    _________________________

    (tableau trié)
    20 2
    50 1
    65 2


    Je ne sais même pas par où commencer.

    Merci d'avance pour votre aide

  2. #2
    Membre expérimenté

    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
    Points : 1 565
    Points
    1 565
    Par défaut
    Déjà il faut savoir que tu n'a pas besoin de "tableau a deux dimensions" pour faire ca.

    Un tableau a 2 dimensions contient en fait 3 informations pour 1 "case" :
    * L'index de la 1ere dimension
    * La valeur de la 1ere dimension : C'est un tableau
    * L'index de la 2eme dimension
    * La valeur de la 2eme dimension : C'est une valeur simple

    Toi ce que tu veux c'est 2 informations, a savoir un "élément" et le "nombre d'occurrence" de l'élément.

    Cela est réalisable facilement avec un seul tableau car php supporte les tableaux "associatif" (c'est a dire indexé par n'importe quoi, une chaine de caractere, une suite d'entiers non contigus, etc...)

    Tu peux écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab = array("Toto"=>1, 2=>"Machin", "truc"=>"chose", 0=>-1);
    Tu cherches donc a obtenir un tableau associatif indexé par ce que tu appelle des REFERENCES et qui contient le nombre d'occurrence des références.

    Bref, tu as :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tab= array(20,50,65,65,20);
    ce qui correspond en fait a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $tab=array(
      0=>20,
      1=>50,
      2=>65,
      3=>65,
      4=>20);
    et tu cherches a obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $tab=array(
      20=>2,
      50=>1,
      65=>2);
    PHP fait déjà ca tout seul :
    http://fr2.php.net/manual/fr/functio...unt-values.php
    et pour trier :
    http://fr2.php.net/manual/fr/function.ksort.php

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    re Tout le monde et surtout Fladnag ,

    J'ai essayer ta methode et elle fonctionne tres bien la seule chose c'est que je n'ai pas le retour à la ligne comme indiqué dans le "manuel php"

    Exemple de ton lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $array = array(1, "hello", 1, "world", "hello");
    print_r(array_count_values($array));
    moi j'obtiens ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [1] => 2 [hello] => 2 [world] => 1 )
    et non :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Array
    (
        [1] => 2
        [hello] => 2
        [world] => 1
    )
    Comment puis-je faire pour obtenir ce resultat ?

    Merci encore pour votre aide

  4. #4
    Membre expérimenté

    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
    Points : 1 565
    Points
    1 565
    Par défaut
    Si tu regarde dans le source HTML produit les retours a la ligne sont bien la ;o)

    Si tu veux les obtenir dans le navigateur, le plus simple est d'entourer le résultat de balises <pre>...</pre>

  5. #5
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Effectivement ça marche parfaitement bien.

    Merci beaucoup

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

Discussions similaires

  1. Tri d'un tableau a deux dimension PHP
    Par quichaci dans le forum Langage
    Réponses: 5
    Dernier message: 11/03/2014, 18h53
  2. [PERL] Trier un tableau a deux dimensions
    Par piregwan dans le forum Langage
    Réponses: 3
    Dernier message: 26/12/2005, 22h29
  3. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  4. Réponses: 13
    Dernier message: 13/10/2005, 16h03

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