[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: сортировка массива
Invis1ble
Привет всем! Че-то никак не могу придумать, как грамотно отсортировать массив такого вида:
  $users = array
(
0 => array
(
'id' => '15',
'nickname' => 'nickname2'
),
1 => array
(
'id' => '25',
'nickname' => 'nickname1'
),
2 => array
(
'id' => '1',
'nickname' => 'nickname4'
),
3 => array
(
'id' => '3',
'nickname' => 'nickname10'
)
);

Надо, чтоб отсортировался в такой:
  $users = array
(
0 => array
(
'id' => '25',
'nickname' => 'nickname1'
),
1 => array
(
'id' => '15',
'nickname' => 'nickname2'
),
2 => array
(
'id' => '1',
'nickname' => 'nickname4'
),
3 => array
(
'id' => '3',
'nickname' => 'nickname10'
)
);

т.е. в алфавитном порядке по нику... Подскажите, как это сделать по уму



Спустя 29 минут, 14 секунд (24.09.2010 - 20:59) sergeiss написал(а):
Цитата
Description
bool usort ( array &$array , callback $cmp_function )
This function will sort an array by its values using a user-supplied comparison function. If the array you wish to sort needs to be sorted by some non-trivial criteria, you should use this function.

Вот то, что тебе нужно. В функции обратного вызова делаешь нужное сравнение - и вуаля smile.gif - у тебя есть нужная сортировка.

Спустя 1 час, 36 минут, 2 секунды (24.09.2010 - 22:35) Invis1ble написал(а):
сделал так:
  function cmp($arr1, $arr2)
{
return strcmp($arr1['nickname'], $arr2['nickname']);
}

usort($users, 'cmp');

скажите, это - грамотное решение?

Спустя 13 минут, 58 секунд (24.09.2010 - 22:49) sergeiss написал(а):
Где-то так... Ты проверь smile.gif Если результат правильный, то всё нормально.

Спустя 4 минуты, 10 секунд (24.09.2010 - 22:53) Invis1ble написал(а):
sergeiss
Да, вроде нормально все. Спасибо за указанное направление раскопок


_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.