Tri - Tableau associatif 2 dimension - PHP
Boutchou
-
pyschopathe Messages postés 2053 Statut Membre -
pyschopathe Messages postés 2053 Statut Membre -
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
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
A voir également:
- Tri - Tableau associatif 2 dimension - PHP
- Tableau word - Guide
- Trier un tableau excel - Guide
- Supercopier 2 - Télécharger - Gestion de fichiers
- Tableau ascii - Guide
- Tableau croisé dynamique - Guide
5 réponses
Bonjour, as-tu regardé les commentaires sur la page https://www.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,
Inutile de réinventer la roue...
Cdt,
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.
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.
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
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
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
=> 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je retombe la dessus et la fonction me revient soudain : https://www.php.net/array_multisort
Le tri sera juste mais le temps d'exécution plus long.
Cdt,
Je retombe la dessus et la fonction me revient soudain : https://www.php.net/array_multisort
Le tri sera juste mais le temps d'exécution plus long.
Cdt,