Сортировка массива

Апокалипсис

тех дир matras.ru
Сортировка массива

Извиняюсь за тупой вопрос. Проблема с инетом еле сюда выбрался. Ман посмотреть не могу. Под рукой ничего нет.
Задача такая есть массив:
PHP:
$a = array(

"1" => array(
      "catid" => 40,
      "Model" => "Привет",
      ),
"2" => array("catid"=> 40,
      "Model" => "Абракодабра",
      ),
"3" => array("catid"=> 20,
       "Model" => "Медвед",
       ),
"4" => array("catid" => 20,
       "Model" => "Аааа"
       ),
       
"5" => array("catid"=> 30,
       "Model" => "Тест запись",
       ),
"6" => array("catid" => 30,
       "Model" => "Вторая"
       ),
);
Нужно его отсортировать по Model чтобы на выходе получить:
PHP:
$a = array(

"1" => array(
      "catid" => 40,
      "Model" => "Абракодабра",
      ),
"2" => array("catid"=> 40,
      "Model" => "Привет",
      ),
"3" => array("catid"=> 20,
       "Model" => "Аааа",
       ),
"4" => array("catid" => 20,
       "Model" => "Медвед"
       ),
       
"5" => array("catid"=> 30,
       "Model" => "Вторая",
       ),
"6" => array("catid" => 30,
       "Model" => "Тест запись"
       ),
);
Т.е. отсортировать по алфавиту Model но как бы внутри категории catid
Важен порядок catid т.е. как он идёт вначале 40 потом 20 потом 30....
Если можете подскажите решение, просто не имею возможности в маны лезть:(
 
Да я не могу к usort именно написать пользовательскую ф-цию.

Как я понимаю нужно собирать в другой массив порядок catid?
Я именно не знаю как написать пользовательскую ф-цию. Чтобы сохранить порядок.


А мана просто тут именно нет:(
 
ссылку на ман я тебе дал.
пользуйся на здоровье.

в пользовательской функции при сравнении конкатишь ид и текст
 
А массив вида
PHP:
"1" => array( 
      "catid" => 40, 
      "Model" => "Привет", 
      ), 
"2" => array("catid"=> 20, 
       "Model" => "Медвед", 
       ), 
"3" => array("catid"=> 40, 
      "Model" => "Абракодабра", 
      ),
Во что должен превращаться?
 
kruglov
Такой же остаётся также.


Спасибо tf он помог. Может кому то пригодитcя:
PHP:
function cmp($a, $b)
{
    if ($a['catid']  == $b['catid'] ) {
        return strcmp($a["Model"], $b["Model"]);
    }
    global $cat;
    $ia = array_search($a['catid'], $cat);
    $ib = array_search($b['catid'], $cat);
    return ($ia  < $ib ) ? -1 : 1;
}

$cat = array(40, 20, 60);
usort($a,"cmp");
 
Сверху