Rechercher : dans
Par :

Trier un tableau multi-dimensionnel en php

Dernière réponse le 1 mai 2009 à 00:15:55 GYK, le 29 avr 2009 à 16:41:18 
 Signaler ce message aux modérateurs

Bonjour,
Mon problème est dans le titre.
Jai un tableau généré ainsi:
[code]
$tab[$i] ['Z1'] = $Z1;
$tab[$i] [$ii] ['Z2'] = $Z2;
$tab[$i] [$ii] ['Z3'] = $Z3;
/code
Mon tableau est correct après génération, mai je n'arrive pas a le trier.
Je souhaiterais de la trier d'abord sur Z1, et a l'interieur du Z1, sur Z2 et ensuite sur Z3
J'ai testé avec différents code dont:
[code]
foreach ($tab as $key => $row)
{
$Z1T[$key] = $row['Z1'];
$Z2T[$key] = $row['Z2'];
$Z3T[$key] = $row['Z3'];
}
array_multisort ($Z1T, SORT_ASC, $tab);
array_multisort ($Z2T, SORT_DESC, $Z3T, SORT_ASC, $tab);
/code
Mais cela ne marche pas.
Quelqu'un peut-til m'aider.
Merci!

Configuration: Windows XP
Firefox 3.0.10

Meilleures réponses pour « Trier un tableau multi dimensionnel en php » dans :
Pascal - Tri par insertion - Récursivité- VoirVoici une procédure récursive qui permet de trier un tableau de n entiers en utilisant la méthode de tri par insertion : Procedure Tri_Ins (Var t: TAB; n: integer); Var aux,i : integer; begin If n > 1 Then begin ...
[Excel] Trier sur les lignes (horizontalement), non les colonnes VoirMicrosoft Excel est configuré par défaut pour réaliser un tri sur les colonnes (Données / Trier). Pour trier les données horizontalement, il suffit de sélectionner les données à trier, puis de cliquer sur le bouton Options et, dans le panneau...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

P@t@ch0n, le 29 avr 2009 à 19:18:00

Il se présente comment ton tableau à l'affichage (print_r()) ?

Difficile de déterminer sa structure comme ça.

Répondre à P@t@ch0n

2

GYK, le 29 avr 2009 à 20:05:44

Bonjour P@t@ch0n;

Un bout du code:
[code]
Array
(
[0] => Array
(
[Z1] => 85-86
[0] => Array
(
[Z2] => Regine GOURON
[Z3] => 1
)

[1] => Array
(
[Z2] => Mme HUTIN
[Z3] => 0
)

[2] => Array
(
[Z2] => Clement SAMINOL
[Z3] => 0
)
/code
Merci
A+

Répondre à GYK

3

pyschopathe, le 29 avr 2009 à 23:33:13

Avec l'indentation ça aurait été plus lisible... Je suppose que tu veux trier par nom ?

Répondre à pyschopathe

4

GYK, le 30 avr 2009 à 10:20:06

Dans ma base j'ai des années, des noms de personnes et certains sont ou Profs ou élève.

J'ai pour une période scolaire, généré un tableau avec les années en Z1, et en vrac les noms en Z3, et l'indice 1 si c'est un Prof et 0 si c'est un élève en Z2.
ce que je veux c'est:

Année
Nom Profs
Nom élève
Nom élève
etc
Année
Nom Profs
Nom élève
Nom élève
etc
Année
Nom Profs
Nom élève
Nom élève
etc
Actuellement si je tri sur année ca marche pour les années, mais les noms des Profs sont n'inporte ou dedans à l'intérieur de l'année.
Mais si je tri ensuite pour avoir le Prof en tête (Z2) et les nom par ordre alphabetique (Z3)
Ca marche pas et je ne comprend pas la logique du tri obtenu.
Je pense que ces précisions t'eclairerons un peu plus.
Merci
A+

Répondre à GYK

5

 pyschopathe, le 1 mai 2009 à 00:15:55

Et si tu laissais ta base de données faire le tri, tu n'aurais plus à t'en soucier après. genre tu termines par un

ORDER BY annee, prof, eleve

Répondre à pyschopathe