Funkcja sortująca tablice wielowymiarowe
Typowe funkcje sortujące wbudowane w PHP działają, ale nie zawsze tak, jakbyśmy chcieli. Stworzyłem tablicę, która zawiera różne dane, między innymi datę. I jak tu posortować taką tablicę wg “wieku” rekordów??
I znowu z pomocą przyszedł wujek Google. Znalazłem mała, ale fajnie sprytną funkcję, dzięki której można sortować tablice wielowymiarowe:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function sort_multi_array($mult_array , $field , $sort_type="ASC_NUM")
{
$code = '';
switch($sort_type) {
case 'ASC_NUM':
$code .= 'return strcmp($a["'.$field.'"], $b["'.$field.'"]);';
break;
case 'DESC_NUM':
$code .= 'return (-1*strcmp($a["'.$field.'"], $b["'.$field.'"]));';
break;
}
$compare = create_function('$a, $b', $code);
usort($mult_array, $compare);
return $mult_array;
}