Rin
*
сортировка двумерного массива подобно ORDER BY
Столкнулся вот с такой задачей.
Есть двумерный массив, по структуре похожий на таблицу БД.
Нужно отсортировать по заданному ключу, подобно тому, как это делается в БД через ORDER BY key, type.
Может кому пригодится, оставляю решение.
Столкнулся вот с такой задачей.
Есть двумерный массив, по структуре похожий на таблицу БД.
Нужно отсортировать по заданному ключу, подобно тому, как это делается в БД через ORDER BY key, type.
Может кому пригодится, оставляю решение.
PHP:
$a = Array(
0 => Array('id' => 5,
'name' => 'test'),
1 => Array('id' => 3,
'name' => 'watertaxi.jpg'),
2 => Array('id' => 8,
'name' => '2_0003.JPG'),
3 => Array('id' => 4,
'name' => '24A_0025.JPG'),
4 => Array('id' => 11,
'name' => '_CIMG3501.JPG'),
5 => Array('id' => 1,
'name' => 'a_C01.JPG'),
);
function _array_multisort_db_cmp($a, $b) {
return strnatcasecmp($a[SORT_KEY], $b[SORT_KEY]) * (SORT_TYPE == SORT_ASC ? 1 : -1);
};
function array_multisort_db($a, $key, $order) {
define('SORT_KEY', $key);
define('SORT_TYPE', $order);
usort($a, '_array_multisort_db_cmp');
return $a;
}
print_r(array_multisort_db($a, 'id', SORT_DESC));