8792 sujets

Développement web côté serveur, CMS

Bonjour,

Je cherche à faire un tri sur un tableau comme ceci :



Array ( [0] => Array ( ) 
[1] => Array ( ) 
[2] => Array ( ) 
[3] => Array ( ) 
[4] => Array ( [3] => 2 ) [5] => Array ( [3] => 8 ) 
[6] => Array ( [5] => 5 [3] => 3 ) 
[7] => Array ( ) 
[8] => Array ( ) 
[9] => Array ( ) 
[10] => Array ( ) 
[11] => Array ( [3] => 7 ) )



C'est sur le 2ème niveau du tableau que je souhaite faire ce tri.

Exemple :
Code :

[6] => Array ( [5] => 5 [3] => 3 )


doit devenir

Code :

[6] => Array ( [3] => 3 [5] => 5 )


Je n'arrive pas à trouver comment faire.
Merci d'avance
Modifié par lodan (24 Feb 2007 - 10:54)
Merci quentin,

Aucun exemple sur le lien fournit ne correspond à mon type de tableau.

Donc je ne crois pas que usort soit la réponse
Tu peux mettre pratiquement ce que tu veux dans la fonction de callback. A mon avis c'est la seule solution pour trier ce type de tableau. Quel genre de tri veux-tu réaliser ?
En fait c'est le contenu de chaque ligne qui est à trier.

Les 12 postes principaux sont 12 mois, le contenu de chacun des mois comme celui-ci :

[6] => Array ( [5] => 5 [3] => 3 )


C'est le mois de juillet

Le résultat du tri devra donner :

doit devenir

Code :

[6] => Array ( [3] => 3 [5] => 5 )


Une ligne peu comprendre ce genre de chose :

[6] => Array ( [5] => 12 [3] => 7 [8] => 1 [2] =>14)[/code]

Le tri donnera :

[/code][6] => Array ( [2] =>14 [3] => 7 [5] => 12 [8] => 1 )[/code]

J'èspère avoir été clair

Merci
Ah, j'avais pas bbien compris : tu ne veux pas trier les valeurs mais les index.
Dans ce cas il existe une autre fonction j'en suis sûr, mais je ne m'en sers tellement pas souvent que je ne m'en rappelle pas le nom. C'est array_ quelque chose.
La solution est :

$m=0;
	foreach ($nbjmois as $ligne) 
	{
	  asort($ligne);
	  $nbjmois[$m]=$ligne;
	  $m++;
	}


Merci pour l'accompagnement