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 :

Récupérer éléments identiques d'un tableau [PHP 4]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Par défaut Récupérer éléments identiques d'un tableau
    Bonjour,

    J'ai un tableau contenant des tableaux, je dois comparer les tableaux pour récupérer les clés de ceux identiques.

    Exemple de tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $arr = array(
    	2 => array(
    			'elt1' => value1,
    			'elt2' => value2,
    			...
    	),
    	3 => array(
    			'elt1' => value1,
    			'elt2' => value2,
    			...
    	),
    	...
    );
    Comment procéderez-vous ? Moi, j'imaginez une boucle imbriquée mais ca sera surement lourd comme traitement, il y a peut être une meilleure façon.

    Je veux juste comme résultats :
    Clés 2, 3, 5 identiques
    Clé 4 unique
    Clés 6, 7 identiques
    ...

    Car après je vais devoir travailler sur ces clés.

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Si j'ai bien compris ton besoin, cet algo devrait faire l'affaire:
    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
    $arr = array(
    	'a' => array(1,2,3),
    	'b' => array(4,5,6),
    	'c' => array(1,2,3),
    	'd' => array(4,5,6),
    	'e' => array(7,8,9)
    );
     
    $key  = array_keys($arr);
    $size = sizeOf($key);
    $indexes = array();
    for ($i=0; $i<$size; $i++) {
    	if (sizeOf($found = array_keys($arr, $arr[$key[$i]])) > 1) {
    		$indexes[] = "Les indexs " . implode(',', $found) . " sont identiques";
    	}
    	else {
    		$indexes[] = "L'index " . $found[0] . " est unique";
    	}
    }
     
    echo implode('<br />', array_unique($indexes));

  3. #3
    Membre éclairé
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Par défaut
    Merci, du coup en attendant je suis passé par array_unique et array_diff_key et j'ai sérialisé mes valeurs. Je vais surement regarder de près votre code pour optimiser le mien.

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    ah mais c'est que c'est pas bête du tout d'avoir pensé à array_diff_key

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

Discussions similaires

  1. [WD18] Récupérer éléments d'un tableau de rendez-vous
    Par Jordywolf dans le forum WinDev
    Réponses: 2
    Dernier message: 24/03/2015, 08h24
  2. Réponses: 9
    Dernier message: 14/05/2009, 13h35
  3. Supprimer les éléments identiques d'un tableau
    Par kanzarih dans le forum Langage
    Réponses: 7
    Dernier message: 06/04/2009, 10h55
  4. Supprimé des éléments vide d'un tableau
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2005, 19h40
  5. Réponses: 4
    Dernier message: 10/08/2004, 11h59

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