Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 23/12/2011, 06h27   #1
Membre habitué
 
Homme
Inscription : octobre 2003
Messages : 255
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2003
Messages : 255
Points : 103
Points : 103
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 :
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.
D4rK_C0uaK6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 10h16   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
Si j'ai bien compris ton besoin, cet algo devrait faire l'affaire:
Code :
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));
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 14h49   #3
Membre habitué
 
Homme
Inscription : octobre 2003
Messages : 255
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : octobre 2003
Messages : 255
Points : 103
Points : 103
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.
D4rK_C0uaK6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2011, 14h52   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 031
Points : 5 031
ah mais c'est que c'est pas bête du tout d'avoir pensé à array_diff_key
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre 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 20h57.


 
 
 
 
Partenaires

Hébergement Web