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 :

Comment filtrer des doublon en fonction d'une variable


Sujet :

Langage PHP

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut Comment filtrer des doublon en fonction d'une variable
    Dans mon tableau,
    j'ai des doublons. Je pourrais utiliser

    array_unique()

    Mais la valuer qui doit etre retiré ne doit pas etre prise par hasard.

    Voici mon tableau:
    Code PHP : 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
     
    Array ( [0] => Array ( [pagetitle] => 1201 [parent] => 11 [id] => 39 ) 
    			[1] => Array ( [pagetitle] => 1201 [parent] => 12 [id] => 15 ) 
    			[2] => Array ( [pagetitle] => 1105 [parent] => 10 [id] => 13 ) 
    			[3] => Array ( [pagetitle] => 1104 [parent] => 11 [id] => 29 ) 
    			[4] => Array ( [pagetitle] => 1103 [parent] => 10 [id] => 19 ) [
    			5] => Array ( [pagetitle] => 1009 [parent] => 10 [id] => 20 ) 
    			[6] => Array ( [pagetitle] => 1006 [parent] => 10 [id] => 21 )
    			 [7] => Array ( [pagetitle] => 1006 [parent] => 12 [id] => 16 ) 
    			 [8] => Array ( [pagetitle] => 1004 [parent] => 10 [id] => 38 ) 
    			 [9] => Array ( [pagetitle] => 1002 [parent] => 12 [id] => 17 ) 
    			 [10] => Array ( [pagetitle] => 1001 [parent] => 12 [id] => 18 ) 
    			 [11] => Array ( [pagetitle] => 906 [parent] => 11 [id] => 30 ) 
    			 [12] => Array ( [pagetitle] => 904 [parent] => 10 [id] => 23 ) 
    			 [13] => Array ( [pagetitle] => 902 [parent] => 11 [id] => 31 ) 
    			 [14] => Array ( [pagetitle] => 901 [parent] => 11 [id] => 32 ) 
    			 [15] => Array ( [pagetitle] => 807 [parent] => 11 [id] => 33 ) 
    			 [16] => Array ( [pagetitle] => 806 [parent] => 10 [id] => 24 ) 
    			 [17] => Array ( [pagetitle] => 805 [parent] => 11 [id] => 34 ) 
    			 [18] => Array ( [pagetitle] => 804 [parent] => 10 [id] => 36 ) 
    			 [19] => Array ( [pagetitle] => 803 [parent] => 10 [id] => 25 ) 
    			 [20] => Array ( [pagetitle] => 801 [parent] => 11 [id] => 37 ) 
    			 [21] => Array ( [pagetitle] => 703 [parent] => 10 [id] => 26 ) 
    			 [22] => Array ( [pagetitle] => 702 [parent] => 10 [id] => 27 ) 
    			 [23] => Array ( [pagetitle] => 701 [parent] => 11 [id] => 35 ) 
    			 [24] => Array ( [pagetitle] => 602 [parent] => 11 [id] => 14 ) 
    			 [25] => Array ( [pagetitle] => 601 [parent] => 10 [id] => 28 ) )

    J'ai deux doublons: 1201 et 1006 dans pagetitle.

    Si par exemple l'id de ma page est 12, c'est ces valeurs qui doivent être supprimer
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [1] => Array ( [pagetitle] => 1201 [parent] => 12 [id] => 15 ) 
    [7] => Array ( [pagetitle] => 1006 [parent] => 12 [id] => 16 )

    car [parent] est égal à 12

    Si par exemple l'id de ma page est 11, c'est cette valeur qui doivent être supprimer
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    [0] => Array ( [pagetitle] => 1201 [parent] => 11 [id] => 39 )
    et soit
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	[6] => Array ( [pagetitle] => 1006 [parent] => 10 [id] => 21 )
    ou
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    			 [7] => Array ( [pagetitle] => 1006 [parent] => 12 [id] => 16 )
    car [parent] est égal à 11.
    S'il y a un doublon mais que parent n'est égal à l'id de la page, il peut retiré soit l'un soit l'autre

    Auriez-vous une direction à me donner?
    Merci

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    Je peine à trouver la solution.
    J'ai affiché e tableau différament
    Code PHP : 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
     
    Array ( 
    			[10] => Array ( 
    					[0] => Array ( [pagetitle] => 904 [parent] => 10 [id] => 23 ) 
    					[1] => Array ( [pagetitle] => 806 [parent] => 10 [id] => 24 ) 
    					[2] => Array ( [pagetitle] => 804 [parent] => 10 [id] => 36 ) 
    					[3] => Array ( [pagetitle] => 803 [parent] => 10 [id] => 25 ) 
    					[4] => Array ( [pagetitle] => 703 [parent] => 10 [id] => 26 ) 
    					[5] => Array ( [pagetitle] => 702 [parent] => 10 [id] => 27 ) 
    					[6] => Array ( [pagetitle] => 601 [parent] => 10 [id] => 28 ) 
    					[7] => Array ( [pagetitle] => 1105 [parent] => 10 [id] => 13 )
    					 [8] => Array ( [pagetitle] => 1103 [parent] => 10 [id] => 19 ) 
    					 [9] => Array ( [pagetitle] => 1009 [parent] => 10 [id] => 20 )
    					  [10] => Array ( [pagetitle] => 1006 [parent] => 10 [id] => 21 ) 
    					  [11] => Array ( [pagetitle] => 1004 [parent] => 10 [id] => 38 ) ) 
    		[11] => Array ( 
    					[0] => Array ( [pagetitle] => 906 [parent] => 11 [id] => 30 ) 
    					[1] => Array ( [pagetitle] => 902 [parent] => 11 [id] => 31 ) 
    					[2] => Array ( [pagetitle] => 901 [parent] => 11 [id] => 32 ) 
    					[3] => Array ( [pagetitle] => 807 [parent] => 11 [id] => 33 ) 
    					[4] => Array ( [pagetitle] => 805 [parent] => 11 [id] => 34 ) 
    					[5] => Array ( [pagetitle] => 801 [parent] => 11 [id] => 37 )
    					 [6] => Array ( [pagetitle] => 701 [parent] => 11 [id] => 35 ) 
    					 [7] => Array ( [pagetitle] => 602 [parent] => 11 [id] => 14 ) 
    					 [8] => Array ( [pagetitle] => 1201 [parent] => 11 [id] => 39 ) 
    					 [9] => Array ( [pagetitle] => 1104 [parent] => 11 [id] => 29 ) ) 
    		[12] => Array ( 
    					[0] => Array ( [pagetitle] => 1201 [parent] => 12 [id] => 15 ) 
    					[1] => Array ( [pagetitle] => 1006 [parent] => 12 [id] => 16 ) 
    					[2] => Array ( [pagetitle] => 1002 [parent] => 12 [id] => 17 ) 
    					[3] => Array ( [pagetitle] => 1001 [parent] => 12 [id] => 18 ) ) )

    Si la page id est égal à la clé du tableau principal (soit 10,11 ou 12), il faut alors que mon script supprime les doublons de [pagetitle] qui se trouve dans les autres array.
    Si par exemple, ma page id est égal à 11, il supprimera les doublon de [pagetitle] qui se trouve dans 10 et 12
    Si la page id n'est pas égal à 10,11 ou 12, il supprimera n'importe quels doublons mais il en garera un.

    Ouf, pouvez vous m'aider ?

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 098
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 098
    Points : 946
    Points
    946
    Par défaut
    Je me raproche,
    mais je n'arrive pas à empiler une array dans une autre.
    Voici ma premiere array
    $activeParent:
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Array ( 
    	[0] => Array ( [pagetitle] => 906 [parent] => 11 [id] => 30 ) 
    	[1] => Array ( [pagetitle] => 902 [parent] => 11 [id] => 31 ) 
    	[2] => Array ( [pagetitle] => 901 [parent] => 11 [id] => 32 ) 
    	[3] => Array ( [pagetitle] => 807 [parent] => 11 [id] => 33 ) 
    	[4] => Array ( [pagetitle] => 805 [parent] => 11 [id] => 34 ) 
    	[5] => Array ( [pagetitle] => 801 [parent] => 11 [id] => 37 ) 
    	[6] => Array ( [pagetitle] => 701 [parent] => 11 [id] => 35 ) 
    	[7] => Array ( [pagetitle] => 602 [parent] => 11 [id] => 14 ) 
    	[8] => Array ( [pagetitle] => 1201 [parent] => 11 [id] => 39 ) 
    	[9] => Array ( [pagetitle] => 1104 [parent] => 11 [id] => 29 ) )
    Voci ma deuxième array
    $passifParent
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Array ( 
    	[0] => Array ( [pagetitle] => 904 [parent] => 10 [id] => 23 ) 
    	[1] => Array ( [pagetitle] => 806 [parent] => 10 [id] => 24 ) 
    	[2] => Array ( [pagetitle] => 804 [parent] => 10 [id] => 36 )
    J'aimerais empiler les élements de $passifParent dans $activeParent à la suite

    J'ai fais donc une boucle de ma premiere array, puis la deuxième et j'essay d'utiliser array_push() mais sans succès.
    Ainsi :
    Code PHP : 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
     
    foreach($passifParent as $passifParentVal){
       // echo '<ul><li>'.$passifParentVal['pagetitle'].'<ul>';
     
        	foreach($activeParent as $activeParentVal){
    	//  echo '<li>'.$activeParentVal['pagetitle'].'</li>';
     
     
    	  if($passifParentVal['pagetitle'] != $activeParentVal['pagetitle']){
     
    	    	array_push($activeParent,$passifParentVal);
    	  }
     
    	}
       // echo '</ul></li></ul>';
      }

    Qu'es ce que je peux utiliser à la place de array_push()?

    Mercis

Discussions similaires

  1. Réponses: 6
    Dernier message: 28/01/2015, 16h34
  2. Réponses: 3
    Dernier message: 28/10/2014, 14h15
  3. Réponses: 6
    Dernier message: 03/02/2010, 14h00
  4. [E-07] Modifier des Label en fonction d'une variable
    Par DarkGenius dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/12/2008, 18h44
  5. [MySQL] classer des ID en fonction d'une variable
    Par gemça dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/12/2007, 10h18

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