У меня есть массив, и я хочу сортировать его по значению ключа [min] (0.2, 0.86 ...)
в порядке desc. Вот массив:
Array ( [0] => Array ( [p1_first_res_avalue] => 0.72413793103448 [p1_rating_lang_avalue] => 0.2 [p1_ps_res_avalue] => 0.79310344827586 [pid] => 0 [p1_discipline_e_avalue] => 0.77777777777778 [p1_rating_lang] => 46 [p1_first_res] => 59 [p1_ps_res] => 57 [p1_discipline_e] => 86 [min] => 0.2 ) [1] => Array ( [p1_discipline_e] => 81 [p1_first_res] => 55 [p1_rating_lang] => 38 [p1_ps_res] => 48 [p1_discipline_e_avalue] => 1 [pid] => 1 [p1_first_res_avalue] => 0.86206896551724 [p1_rating_lang_avalue] => 1 [p1_ps_res_avalue] => 1 [min] => 0.86 ) [2] => Array ( [p1_discipline_e] => 81 [p1_first_res] => 55 [p1_rating_lang] => 38 [p1_ps_res] => 48 [p1_discipline_e_avalue] => 1 [pid] => 1 [p1_first_res_avalue] => 0.86206896551724 [p1_rating_lang_avalue] => 1 [p1_ps_res_avalue] => 1 [min] => 0.3 ) ... )
Я пытался использовать функцию uasort, но я не могу получить доступ к [min]
значению массива, чтобы сравнить его. Вот что я пытаюсь ( $res
– массив, нужно сортировать):
$sortd = 'down'; $f = function($a, $b) use ($sortd) { if (($sortd) == 'down') { if ($a['min'] == $b['min']) return 0; return ($a['min'] > $b['min']) ? -1 : 1; } else { } }; foreach ($res as $k => $v) { uasort($res[$k], $f); }
Пожалуйста, какие-либо идеи, как решить проблему?