Re: [php-france] Trier un tableau selon plusieurs critères.
by David BOURIAUD other posts by this author
Jun 22 2007 7:35AM messages near this date
Re: [php-france] Trier un tableau selon plusieurs critères.
|
Re: [php-france] Trier un tableau selon plusieurs critères.
Le vendredi 22 juin 2007, David BOURIAUD a �crit�:
> Bonjour,
> me voici confront� � un probl�me que je n'avais jamais rencontr�
> auparavant, que je sais r�soudre en sql, mais pas du tout en php....
> Voici la probl�matique :
> Je r�cup�re des informations dans une base de donn�es. Au moment de la
> r�cup�ration, j'ajoute artificiellement une colonne � la ligne r�cup�r�e.
> Le code ressemble un peu � �a :
>
> while ($rSet = ifx_fetch_row (($resId, (int)$indexRes))
> {
> $tab[$indexTab] = $rSet;
> $tab[$indexTab]['plop'] = $valeur;
> $indexRes++;
> $indexTab++;
> }
>
> Or, apr�s coup, je voudrais trier le tableau obtenu, $tab, selon plusieurs
> colonnes.
> En l'ocurence, chaque ligne de $tab ressemble �
> col1 | col2 | col3 | col4 | col5 | plop
>
> Je veux trier ce foutu tableau $tab, selon les colonnes col1, col2 et col5.
> Quelqu'un aurait une id�e du comment faire ?
> Merci pour toute aide ou suggestion.
Bon, merci pour vos contributions, mais j'ai trouv� la solution tout seul...
Et la fonction qu'il me fallait, c'�tait la fonction.... roulements de
tambours........
sort (envoyez la musique des clowns).
En effet, si vous avez un tableau structur� comme celui que je d�cris
pr�c�dement, si vous lui appliquez la fonction sort, il trie les lignes du
tableau en faisant un tri sur chaque colonne.
Exemple simple :
$tab[0]['col1'] = 'B';
$tab[0]['col2'] = 'A';
$tab[1]['col1'] = 'A';
$tab[1]['col2'] = 'B';
si on fait un sort dessus, on aura la ligne 1 avant la ligne 0, car la
premi�re colonne est avant. Bref, je ne sais pas si je suis clair, mais en
tout cas, �a fonctionne comme �a, d'apr�s ce que j'ai pu en voir.
P.S. :
$tab[0] = ("B", "D", "E", "F");
$tab[1] = ("B", "D", "G", "F");
$tab[2] = ("B", "A", "E", "F");
$tab[3] = ("B", "A", "E", "Z");
sort ($tab);
$tab[0] = ("B", "A", "E", "F");
$tab[1] = ("B", "A", "E", "Z");
$tab[2] = ("B", "D", "E", "F");
$tab[3] = ("B", "D", "G", "F");
sera peut-�tre plus clair...
En tout cas, plus clair que la doc ;-) !
Quoi qu'il en soit, merci pour votre contribution, car elle ouvre d'autres
perspectives, pour d'autres cas !
Thread:
David BOURIAUD
Jean-Marie Fourcade
David BOURIAUD
Patrick
Benjamin APARICIO
|