Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2011, 00h50   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 57
Points : 12
Points : 12
Par défaut Matching 2 tableaux

Bonsoir à tous,

je dispose de 2 tableaux

Code :
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 :
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 :
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
 
[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 :
1
2
3
4
5
6
7
8
9
10
11
 
            [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 :
1
2
3
4
5
6
7
8
9
10
11
 
            [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 :
1
2
3
4
5
6
7
8
9
10
11
 
            [13995873] => stdClass Object
                (
                    [id] => 13995873[listClient] => Array
                        (
                            [0] => ....
                            [1] => 13996174
                            [2] => ....
                        )
 
                )
et ainsi de suite ....

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
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
Nick_Rivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2011, 08h09   #2
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 57
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 57
Points : 12
Points : 12
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 !
Nick_Rivers est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h49.


 
 
 
 
Partenaires

Hébergement Web