Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
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 14/11/2011, 16h56   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Par défaut Tableau : inverser clés et valeurs

Bonjour à tous,

je dispose d'un tableau. Dans ce tableau, des valeurs peuvent être dupliquées. Mon souci est que je voudrais obtenir un autre tableau dans lequel clés et valeurs sont inversées mais où les valeurs doublées seront sur la même nouvelle clé et séparées par une virgule.

Voici un exemple, car je sens que ce n'est pas très clair :

tableau de départ :
[10] => 3
[11] => 1
[13] => 6
[14] => 4
[15] => 6
[17] => 3

tableau résultat :
[3] => 10,17
[1] => 11
[6] => 13,15
[4] => 14

Merci pour votre aide car je ne vois pas trop comment faire ceci. J'ai vu la fonction array_flip mais le groupement des valeurs (séparés par des virgule me bloque).
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 17h36   #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 032
Points : 5 032
Hello

array_flip ne peux pas t'aider, les clés en doublons seront écrasées.

Tu peux en revanche faire un algo tout bête:
Code :
1
2
3
4
5
6
7
8
9
10
function array_safe_flip (array $arr) {
  $ret = array();
  foreach ($arr as $key => $value) {
     if (isset($ret[$value]))
       $ret[$value] .= ",{$key}";
     else
       $ret[$value] = $key;
  }
  return $ret;
}
__________________
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 14/11/2011, 17h36   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 133
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 133
Points : 8 493
Points : 8 493
va falloir faire un boucle pour créer le nouveau tableau, un coup de foreach fera l'affaire
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 17h50   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 789
Points : 35 789
Une autre approche pourrait aussi être de considérer que la création du premier tableau est conceptuellement erronée et revoir cette phase là pour obtenir directement le tableau souhaité...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/11/2011, 07h53   #5
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Ok, merci pour votre aide. J'ai finalement opté pour le petit algo de Benjamin Delespierre qui fait exactement ce que je veux.

a+
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon 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 09h42.


 
 
 
 
Partenaires

Hébergement Web