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 :

Tri de tableau


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Urbaniste
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Tri de tableau
    Bonjour à tous,

    Cela fait quelque temps que je cherche une solution pour un programme sur un site Intranet dans le cadre de la gestion du base de données ou je dois une fois récupérer faire des tris sur des tableaux avant de renvoyer le tout à la bdd.
    En fait, j'ai à l'origine 2 tableaux qui contiennent par exemple :
    Tableau 1
    770
    771
    771
    781
    781
    790
    Tableau 2
    0
    0
    1
    0
    2
    0

    Et je souhaite obtenir un ou deux tableaux qui contiendra
    770 0
    771 0-1
    781 0-2
    790 0

    Les lignes des tableaux devant rester "liés" pour exécuter la bonne requete.

    Bref j'ai beau tenter des boucles ou autre mais j'arrive pas à m'en sortir.
    Pour la gestion du tableau 1 array_unique et c'est réglé mais comment lié ça au fait qu'il faut bidouiller le tableau 2.
    Après je pensais au fonction pregmatch_all si je convertis le tout en chaine de caractère avant traitement mais bon je maîtrise pas trop.
    Si vous avez des idées de méthodes, j'avoue être preneur étant bloqué.
    Merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Points : 178
    Points
    178
    Par défaut
    bonjour,
    ton exemple ne présentant par de cas de "code" concret, ma première réponse serait de te suggérer d'utiliser des tableau multidimensionnel, y as tu pensé?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Urbaniste
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Oui, je pensais au multidimensionnel effectivement. CEpendant array unique ne s'applique pas

    Pour le code c'est celui-ci :

    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
     
    header("Content-Type: text/html; charset=UTF-8");
    session_start();
    include ('../scripts/bdd_connect.php');
     
    $addtr=$bdd->prepare('UPDATE element_projet SET tranche=:tr WHERE Id_item_proj= :Id_item ');
    // Function permettant de décomposer l'i de l'élément et la tranche associée
    function decompose($valeur)
    {
    $pieces = explode("-", $valeur);
    $id_element=$pieces[0]; 
    $tranche=$pieces[1];
    return array($id_element,$tranche);
    }
     
    $a=$_POST['case_a_cocher'];
    $c = count($a);
    $b=decompose($a[1]);
    // Je crais deux tablaux ayant le même nombre d'éléments, un contenant l'id et l'autre la tranche
    for ($i=0;$i<$c;$i++)
    {
    $retour=decompose($a[$i]);
    $tableau_id[]=$retour[0];
    $tableau_tr[]=$retour[1];
    }
    // On a ci-dessous la liste unique des id
    $tableau_id_uniq = array_unique($tableau_id);
    //Ensuite, on va chercher dans le tableau le numéro associé à chaque id pour vérifier les doublons et créer la chaine de tranches
    Je récupère de ma page précédente une liste d'id de mes objets au quel je veux associer des listes séparées par des -
    Je veux donc supprimer les doublons de $tableau_id (facile avec array_ unique) mais pour les valeurs supprimées de $tableau_id il doit aussi travailler sur $tableau_tr en "fusionnant" les les lignes supprimés.
    Bref pas facile à expliquer c pour ça que j'ai mis un exemple concret sans le code.
    Merci

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 182
    Points : 178
    Points
    178
    Par défaut
    je suis pas sur d'avoir tous compris tes règles métiers.
    n'hésite pas à nous dire conretement le but de ton algo, classer des pommes et poires par couleur etc...

    Bref je pense que ton souci vient de ton algo globalement.
    Il suffit sans doute de n'initialiser qu'un seul tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for ($i=0;$i<$c;$i++)
    {
    $retour=decompose($a[$i]);
    $tableau[$retour[0]]=$retour[1];
    }
    avec derrière un array unique pour purger les ids en double
    Dis moi si ça t'aide?

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    pour faire ce que tu souhaites il y a beaucoup plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    $a = array(770, 771, 771, 781, 781, 790);
    $b = array(0, 0, 1, 0, 2, 0);
    $r = array();
     
    foreach($a as $i => $v) {
       $r[$v] .= ((strlen($r[$v])) ? '-' : NULL) . $b[$i];
    }
     
    ?>
    Enfin, j'espère que cela répond à la question

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Urbaniste
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Ok, je vais tester un peut tout ça et je vous faits part d'un retour dans le week-end, merci à tous pour vos contributions.

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Urbaniste
    Inscrit en
    Août 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2011
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci bcp à tous et Xysyo particulièrement, ton script fonctionne. Je vais maintenant bien analyser tout ça pour comprendre en détail ta fonction.

    C'est vraiment cool de m'avoir dépanner, ça faisait deux jours que je me cassais la tête, encore merci à vous.

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

Discussions similaires

  1. [Tableaux] tri de tableau deux dimensions
    Par oursquetaire dans le forum Langage
    Réponses: 8
    Dernier message: 27/12/2005, 14h27
  2. Problème dans un tri de tableau
    Par pmboutteau dans le forum ASP
    Réponses: 5
    Dernier message: 29/11/2005, 13h12
  3. [Tableaux] tri de tableau
    Par rdams dans le forum Langage
    Réponses: 19
    Dernier message: 08/11/2005, 13h46
  4. [PERL] problème tri de tableau
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 31/08/2005, 15h42
  5. [langage] tri dans tableau de hachage
    Par mimilou dans le forum Langage
    Réponses: 2
    Dernier message: 10/03/2004, 16h10

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