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] question recherche et tri dans un tableau


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 9
    Points
    9
    Par défaut [Tableaux] question recherche et tri dans un tableau
    salut à tous
    alors j'ai un tableau de cette forme

    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
    33
    34
    35
    36
    37
    38
    39
     
    [0] => Array
            (
                [0] => 1
                [1] => marseille
                [2] => 116333
                [3] => -0.05
                [4] => 116388
                [5] => 132178
                [6] => 2007-01-24
                [7] => 3434
                [8] => 003 //valeur dont je voudrai me servir pour le tri
            )
     
        [1] => Array
            (
                [0] => 2
                [1] => nancy / pulnoy
                [2] => 109693
                [3] => -9.07
                [4] => 120634
                [5] => 110475
                [6] => 2007-01-24
                [7] => 5013
                [8] => 048 //valeur dont je voudrai me servir pour le tri
            )
     
        [2] => Array
            (
                [0] => 3
                [1] => limoges 
                [2] => 107309
                [3] => 3.16
                [4] => 104018
                [5] => 114891
                [6] => 2007-01-23
                [7] => 2464
                [8] => 045 //valeur dont je voudrai me servir pour le tri
            )
    en tout ya environ 200 "enregistrements"

    en fait je voudrais rechercher un element et le placer en tete du tableau général

    par exemple ici, c'est comme si je voulais prendre le array[2] limoges et le place en tout premier

    mais comme c'est un grand tableau composé de moultes tableaux je suis un peu perdu

    je sais pas si c'etait tres clair

    merci d'avance a ceux qui veulent bien essayer de m'aider un peu ;-)

  2. #2
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Points : 751
    Points
    751
    Par défaut
    Tu veux le deplacer pour un affichage ou tu veux deplacer un partie de ton tableau pour le remplacer dans le même tableau mais à un endroit différent ?
    Aucune aide par MP, utilisez le forum.

  3. #3
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    pour trouver ton élément, je pense que tu peux essayer la fonction array_search

    Sinon, tu peux toujours faire une fonction récursive à base de foreach et de is_array
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  4. #4
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par J0r_x
    Tu veux le deplacer pour un affichage ou tu veux deplacer un partie de ton tableau pour le remplacer dans le même tableau mais à un endroit différent ?
    alors comme ta du le comprendre jai un tableau qui contient lui meme plusieurs autres tableaux

    donc moi je voudrais faire une recherche dune valeur dun des sous tableaux (a savoir lindice [8] ) pour prendre lelement complet (donc un tableau) et le mettre en tete du tableau général

    est ce plus clair ?

    mais sinon, oui c'est juste pour l'affichage html, il me faut un tableau particulier en premier, et le reste en "vrac"

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    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
    $search = 45;
     
    //recherche de l'élément qui nous intéresse
    $found = false;
    reset($tableau);
    while(!$found && list($pos,$enr) = each($tableau)) {
       $found = ($enr[8] == $search);
    }
     
    if ($found) {
       //reconstruction du tableau
       $tableau_final = array_merge(
          $tableau[$pos], 
          array_slice($tableau, 0, $pos),
          array_slice($tableau, $pos)
       );
       var_dump($tableau_final);
    } else {
       echo "not found!";
    }
    Un truc dans ce genre ?

  6. #6
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Mr N.
    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
    $search = 45;
     
    //recherche de l'élément qui nous intéresse
    $found = false;
    reset($tableau);
    while(!$found && list($pos,$enr) = each($tableau)) {
       $found = ($enr[8] == $search);
    }
     
    if ($found) {
       //reconstruction du tableau
       $tableau_final = array_merge(
          $tableau[$pos], 
          array_slice($tableau, 0, $pos),
          array_slice($tableau, $pos)
       );
       var_dump($tableau_final);
    } else {
       echo "not found!";
    }
    Un truc dans ce genre ?

    je viens de tester rapidement ton bout de code et ça marche super bien, je te remercie grandement de ton aide !!!!

    maintenant je vais essayer de capter comment ça marche, parceque je ne connaissais pas les fonction slice et merge etc

    en tout cas encore un gros MERCI à toi

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    encore moi
    bon alors ça marche, mais c'est la fusion du tableau final qui "deconne" un peu
    en fait j'obtiens ça :
    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
    33
    34
    35
    36
    Array
    (
        [0] => 117
        [1] => avignon / la courtine
        [2] => 45162
        [3] => 12.82
        [4] => 40030
        [5] => 51952
        [6] => 2007-01-22
        [7] => 1765
        [8] => 009
        [9] => Array
            (
                [0] => 1
                [1] => marseille / plan de campagne
                [2] => 116333
                [3] => -0.05
                [4] => 116388
                [5] => 132178
                [6] => 2007-01-24
                [7] => 3434
                [8] => 003
            )
     
        [10] => Array
            (
                [0] => 2
                [1] => nancy / pulnoy
                [2] => 109693
                [3] => -9.07
                [4] => 120634
                [5] => 110475
                [6] => 2007-01-24
                [7] => 5013
                [8] => 048
            )
    alors que moi je voudrais ça :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    Array
    (
        [0] => Array
        {
             [0] => 117
             [1] => avignon / la courtine
             [2] => 45162
             [3] => 12.82
             [4] => 40030
             [5] => 51952
             [6] => 2007-01-22
             [7] => 1765
             [8] => 009
             [9] => Array
       }
       [1] => Array
            (
                [0] => 1
                [1] => marseille / plan de campagne
                [2] => 116333
                [3] => -0.05
                [4] => 116388
                [5] => 132178
                [6] => 2007-01-24
                [7] => 3434
                [8] => 003
            )
     
        [2] => Array
            (
                [0] => 2
                [1] => nancy / pulnoy
                [2] => 109693
                [3] => -9.07
                [4] => 120634
                [5] => 110475
                [6] => 2007-01-24
                [7] => 5013
                [8] => 048
            )
    mais peut-etre que jen demandes trop ...

  8. #8
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 19
    Points : 9
    Points
    9
    Par défaut
    bon ben finalement je me suis debrouillé en bidouillant

    mais merci quand meme !!!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/05/2014, 10h29
  2. [Tableaux] tri dans un tableau de variables
    Par astrolane dans le forum Langage
    Réponses: 12
    Dernier message: 15/10/2007, 19h55
  3. [Tableaux] Tri dans un tableau
    Par ssebuser dans le forum Langage
    Réponses: 11
    Dernier message: 12/12/2006, 20h29
  4. [Tableaux] Rechercher les doublons dans un tableau
    Par jym_22 dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2006, 09h47
  5. Réponses: 4
    Dernier message: 28/10/2005, 13h32

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