Rechercher : dans
Par :

Tri - Tableau associatif 2 dimension - PHP

Dernière réponse le 29 aoû 2009 à 17:11:01 Boutchou, le 26 aoû 2009 à 14:08:37 
 Signaler ce message aux modérateurs

Bonjour,

Après plusieurs heures de recherches & ne trouvant pas de solution à mon problème, je me tourne vers vous...

J'ai un tableau associatif comme ci dessous. Le souci est que j'aimerai pouvoir trier (afficher) les différents enregistrement en fonction des champs : dir puis cs & ensuire par nom. j'ai testé avec sort & j'en passe, mais cela ne m'aide pas... (je m'y prend peut etre mal)
Array (
[NOM1 PRENOM1]
=> Array (
[nom] => NOM1
[prenom] => PRENOM1
[dir] => DIR1
[cs] => CS1
[28/12/2008] => 11.88
[28/02/2009] => 11.05
[28/03/2009] => 10.27
[28/05/2009] => 0
[28/06/2009] => 0
[28/09/2008] => 0
)
[NOM2 PRENOM2]
=> Array (
[nom] => NOM2
[prenom] => PRENOM2
[dir] => DIR1
[cs] => CS2
[28/12/2008] => 11.88
[28/02/2009] => 10.27
[28/03/2009] => 10.27
[28/05/2009] => 0
[28/06/2009] => 0
[28/09/2008] => 0
)
)

Pour afficher mes valeurs, j'utilise ceci :

foreach($Tab as $cle1 => $valeur1)
{
echo "Nom personne :" . $cle1 . "<br />";
foreach ($valeur1 as $cle2=>$valeur2)
{
echo "Clé : ".$cle2 .", Valeur: " . $valeur2 . "<br />\n";
}
echo "<br \>";
echo "<br \>";
}

Pour info, la version php du serveur est la : php-5.1.6

D'avance merci pour votre aide. Etant principalement Administrateur système, j'avoue être un peu perdu à ce niveau.


Boutchou

Configuration: Windows XP Internet Explorer 7.0

Meilleures réponses pour « Tri Tableau associatif 2 dimension PHP » dans :
Trier un tableau sans utiliser la fonction sort VoirTrier un tableau sans utiliser la fonction sort D'abord on initialise une variable $max avec la 1ère valeur de tableau. Ensuite on va faire une boucle tant que le tableau contient encore des éléments. C'est avec la fonction splice qui a le rôle...
PHP - Concaténation VoirPHP permet de concaténer des chaînes de caractères grâce à l'opérateur "." : $concatenation= $a . $b; Ou encore pour affecter, dans la variable $a, la valeur de la concaténation de $a et de $b : $a.=$b; Pour concaténer des chaînes et des...
Langage C - Les tableaux VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...

1

Archeus01, le 26 aoû 2009 à 14:24:24
  • +1

Bonjour, as-tu regardé les commentaires sur la page http://fr2.php.net/ksort ? Le dernier commentaire entre auyre (celui posté par serpro at gmail dot com) répond à ta question.
Inutile de réinventer la roue...
Cdt,

Répondre à Archeus01

2

Boutchou, le 26 aoû 2009 à 14:53:46

Ah, en effet, celui là, je n'avais pas vu... :(

Cela fonctionne bien pour une 1 colonne. je vais essayer de modifier ça pour le faire sur trois colonnes...

=> Sur CS, DIR & NOM ...

ça me promet du sport :)

Courage, courage...


Merci à toi,



Boutchou

Répondre à Boutchou

3

pyschopathe, le 26 aoû 2009 à 15:13:16
  • +1

Tu peux aussi essayer de rajouter une colonne qui serait la concaténation des trois autres dans l'ordre souhaité pour le tri... Puis tu tries sur cette colonne.
Il faut par contre t'assurer que chaque "champs" de ta concaténation a toujours la même longueur en faisant un pad par exemple, sous peine de résultat incorrect.

Répondre à pyschopathe

4

Boutchou, le 26 aoû 2009 à 16:02:02

Merci à toi, bien vu pour la concaténation, j'ai donc collé les champs : DIR - CS - NOM

=> un tit remplacement des espaces par rien.

& cela me les classes suffisament correctement.



Il me reste plus qu'à sortir tout ça en excel avec : require_once 'Spreadsheet/Excel/Writer.php'

& on en parle plus :)


Automatisation power :)


Merci à vous pour votre aide,


Boutchou

Répondre à Boutchou

5

pyschopathe, le 27 aoû 2009 à 17:39:27

Hello !

Content d'avoir pu aider, mais plutôt que remplacer les espaces par rien, j'aurais vu un remplacement des riens par des espaces. Cela dit si le classement n'a pas besoin d'être parfait, c'est suffisant.

Bonne continuation.

Répondre à pyschopathe

6

Archeus01, le 28 aoû 2009 à 11:09:17

Bonjour,

Je retombe la dessus et la fonction me revient soudain : http://fr2.php.net/array_multisort
Le tri sera juste mais le temps d'exécution plus long.

Cdt,

Répondre à Archeus01

7

 pyschopathe, le 29 aoû 2009 à 17:11:01

Je suis dégoûté de ne pas y avoir pensé, d'autant que je l'utilise dans un des derniers scripts que j'ai développé... J'ai une mémoire impressionnante !

Répondre à pyschopathe