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

PHP & Base de données Discussion :

Matching 2 tableaux [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 31
    Points
    31
    Par défaut Matching 2 tableaux
    Bonsoir à tous,

    je dispose de 2 tableaux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	$r = array(13996174,13996200,13996213,...);
    	$c = array(13995858,13995873,13995886,...);
    j'aimerai réaliser un matching un peu particulier, je m'explique :
    Il me faut pour chaque id du tableau "r" une liste d'id client soit le tableau "c"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $matching=array();
     
    	foreach ($r as $cle=>$rec) {
    		if($cle != 0) {
    			$lastElement = array_shift($c);
    			$tabs = array_push($c, $lastElement);
    		}	
    		$matching[$rec]->id = $rec;
    		$matching[$rec]->listClient = $c;	
    	}

    Le code suivant me retourne bien mes 3 premiers éléments.
    chaque id du tableau "r" disposent d'une liste client décalé d'un élément.

    le résultat :


    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
     
    [13996174] => stdClass Object
                    (
                        [id] => 13996174
                        [listClient] => Array
                            (
                                [0] => 13995858
                                [1] => 13995873
                                [2] => 13995886
                            )
     
                    )
     
                [13996200] => stdClass Object
                    (
                        [id] => 13996200
                        [listClient] => Array
                            (
                                [0] => 13995873
                                [1] => 13995886
                                [2] => 13995858
                            )
     
                    )
     
                [13996213] => stdClass Object
                    (
                        [id] => 13996213
                        [listClient] => Array
                            (
                                [0] => 13995886
                                [1] => 13995858
                                [2] => 13995873
                            )
     
                    )

    Je réalise la même opération, cette fois ci chaque id du tableau "c" à pour liste client le tableau "r". (donc l'inverse..)

    je me retrouve donc avec 6 éléments dont chacun dispose d'une liste client.

    Le résultat final que je n'arrive pas à obtenir pour le moment est le suivant :
    si je reprends mon premier élément généré.

    Element 1
    Tableau "R" qui a pour liste client tableau "C"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                [13996174] => stdClass Object
                    (
                        [id] => 13996174
                        [listClient] => Array
                            (
                                [0] => 13995858
                                [1] => 13995873
                                [2] => 13995886
                            )
     
                    )
    l'index 0 à pour valeur l'id 13995858.

    Si je vais à l'élément qui a pour id principal "13995858"

    Tableau "C" qui a pour liste client tableau "R"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                [13995858] => stdClass Object
                    (
                        [id] => 13995858
                        [listClient] => Array
                            (
                                [0] => 13996174
                                [1] => 13996200
                                [2] => 13996213
                            )
     
                    )
    je retrouve bien pour l'index 0 l'id 13996174 (soit l'id principal de l'élément 1 plus haut) j'ai donc bien une correspondance.

    il me faudrait donc la même chose pour l'index suivant de l'élément 1

    soit l'index 1 :

    si je vais à l'élément dont l'id principal est 13995873
    je devrais me retrouver avec le code suivant et donc également une correspondance à l'index 1 de l'élément 1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                [13995873] => stdClass Object
                    (
                        [id] => 13995873
                        [listClient] => Array
                            (
                                [0] => ....
                                [1] => 13996174
                                [2] => ....
                            )
     
                    )
    et ainsi de suite ....

    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
     
    index 2 du premier élément :
    [2] => 13995886
     
    si on prend l élément dont l id principal est l index 2 :
     
                [13995886] => stdClass Object
                    (
                        [id] => 13995886
                        [listClient] => Array
                            (
                                [0] => ....
                                [1] => ....
                                [2] => 13996174
                            )
     
                    )
    ici encore une fois l'index 2 aura pour correspondance l'id principal de l'élément 1

    et ceci est valable pour chaque élément...
    je sais pas si j'ai réussi à expliquer mon problème de manière clair !
    merci pour vos réponses

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 31
    Points
    31
    Par défaut
    J'ai finalement trouvé ma solution...
    une fois l'exemple décomposé et une bonne nuit de sommeil..

    pour info il me me fallait décompiler d'une autre manière avec array_pop et array_unshift !

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

Discussions similaires

  1. [langage] erreurs utilisation tableaux 2 dimensions
    Par drosof dans le forum Langage
    Réponses: 11
    Dernier message: 01/07/2003, 11h44
  2. "Match nul"
    Par Sylvain James dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 17/06/2003, 10h27
  3. Réponses: 6
    Dernier message: 04/04/2003, 15h28
  4. template match="node() mais pas text()"
    Par Manu_Just dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 26/03/2003, 10h52
  5. Les tableaux en PL/SQL
    Par GRUMLY dans le forum PL/SQL
    Réponses: 5
    Dernier message: 12/08/2002, 18h10

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