сортировка масива по нужному полю

Sky_Flex

Новичок
сортировка масива по нужному полю

Помоги, пожалуйста... уже битый час сижу не могу найти как сделать...

Задача такова: отсортировать двумерный массив по нужному полю в нужном порядке.
сколько элементов - неизвестно.

Пример мой..:
$a[0]['id'] = "b";
$a[0]['pid'] = "100";
$a[1]['id'] = "a";
$a[1]['pid'] = "150";
$a[2]['id'] = "c";
$a[2]['pid'] = "120";

вот этот масив нужно отсортировать по полю pid чтобы в убывающем порядке было...
т.е. чтобы получилось:
$a[0]['id'] = "a";
$a[0]['pid'] = "150";
$a[1]['id'] = "c";
$a[1]['pid'] = "120";
$a[2]['id'] = "b";
$a[2]['pid'] = "100";

искал функцию в мане... не нашел..
помогите..
 

Sky_Flex

Новичок
пробовал такими:

получилось но не то: array_multisort,
не получилось: asort - по алфавиту, arsort - тоже,

а остальные для одномерных...

так как? или какой?

-~{}~ 14.11.05 01:57:

и еще... помоги плиз.. или хоть линк где ест про это дай.. если знаеш (я в своём chm'ме смотрел...) а то траф сейчас кончится... а МНе да завтра нода сделать... войди в положение..
 

Sky_Flex

Новичок
ну если арай_мультисорт, то наверно просто я не понял как ей пользоваться...

писал -
PHP:
array_multisort($a, SORT_NUMERIC, SORT_ASC);
так он по первому полю сортирует как понял..., а может в этой функции можно указать по какому полю?
все трафа болше нет... только запрос отошлет ща.. и даже страница нарна не загрузится...

СПАСИБО! сейчас буду по этой функйии ман читать... только он на англицком... ну да ладно. разберусь наверно.
 

white phoenix

Новичок
PHP:
function tabsort($a,$b) {global $field; return strnatcmp($a[$field], $b[$field]);}

$field = "pid"; // поле по которому сортировать
usort($a, "tabsort");
отсортирует в натуральном порядке. если нужно в обратом то сделай
PHP:
$a = array_reverse($a);
 

SiMM

Новичок
> function tabsort($a,$b) {global $field; return strnatcmp($a[$field], $b[$field]);}
Можно и без global обойтись (некошерно это ;) ) примерно как здесь
 

white phoenix

Новичок
дык у меня тоже самое, только в том примере $field как текст записан а не как переменная.
 

SiMM

Новичок
> дык у меня тоже самое
У тебя не то же самое. У тебя юзается global. Что привязывает тебя к определённым соглашениям.
 
Сверху