У меня есть многомерный массив, который в основном состоит из одного подмассива для каждого года. Так, например, если бы у меня были данные за три года, это могло бы выглядеть так:
$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);
Теперь я хочу иметь возможность сортировать эти массивы по одному из лет. Например, я могу захотеть отсортировать по второму году, и в этом случае все они будут отсортированы по переупорядочению $ data [1].
Я могу легко это сделать с помощью array_multisort:
array_multisort($data[1],SORT_ASC,$data[0],$data[2]);
Это хорошо, но я не знаю, сколько будет лет данных. Мне нужен какой-то способ указать только правильное количество аргументов, но я не знаю, как это сделать в php, если только мне не нужно иметь оператор if для каждого возможного числа лет, что кажется невероятно болезненным:
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...
}
Кто-нибудь знает лучший способ?