J'ai un tableau multidimensionnel, qui consiste essentiellement en un sous-tableau pour chaque année. Ainsi, par exemple, si j'avais une valeur de trois années de données, il pourrait ressembler à ceci:Tri d'un tableau multidimensionnel en utilisant array_multisort, où vous ne connaissez pas les dimensions du tableau
$data[0] = Array(0,1,2,3,4,5,6,7);
$data[1] = Array(6,5,4,3,6,7,8,9);
$data[2] = Array(1,4,2,5,7,3,1,4);
Maintenant, je veux être en mesure de trier ces tableaux sur la base de l'une des années. Par exemple, je pourrais vouloir trier en fonction de la deuxième année, auquel cas ils seraient tous triés en fonction de la réorganisation de $ data [1].
Je peux le faire facilement avec array_multisort:
array_multisort($data[1],SORT_ASC,$data[0],$data[2]);
C'est bien, mais je ne sais pas combien d'années de données, il y aura. Je veux un moyen de spécifier juste le bon nombre d'arguments, mais je ne sais pas comment faire cela en php, sauf si je dois juste avoir une déclaration if pour chaque nombre d'années, ce qui semble incroyablement douloureux:
if ($num_years == 1)
{
array_multisort($data[$which_year],SORT_ASC);
}
else if ($num_years == 2)
{
array_multisort($data[$which_year],SORT_ASC,$data[0],$data[1]); // this does work, interestingly, in spite of the repetition...
}
Quelqu'un sait-il d'une meilleure façon?
Ah! Cool. Cela ressemble exactement à ce dont j'ai besoin. Je vais l'essayer. – Ben
Cela fonctionne! Une chose: vous devez ajouter les tableaux dans le tableau $ params par référence, sinon cela ne fonctionne pas. Donc: $ params [] = &$year; – Ben