|
|
|
| У меня есть массив:
$arr = array(
'4' => array (
'login' => 'Anya',
'gender' => 'm'
),
'34' => array (
'login' => 'Petya'
'gender' => 'f'
),
'2' => array (
'login' => 'Zemfira'
'gender' => 'm'
)
);
|
Как видите все элементы находятся в отсортировоном порядке по ключу - login.
Мне необходимо добавить в массив новое значение.
$arr['7'] = array (
'login' => 'Borya',
'gander' => 'f'
);
|
Помогите написать функцию которая будет сортировать этот массив по ключу login, не трогая уникальные индификаторы 4,32,2,7, т.е. чтобы они оставались у своих владельцев, просто чтобы элементы сли в порядке возростания по login.
Чтобы в данном примере в итоге получился массив:
$arr = array(
'4' => array (
'login' => 'Anya',
'gender' => 'm'
),
'7' => array (
'login' => 'Borya',
'gender' => 'f'
),
'34' => array (
'login' => 'Petya'
'gender' => 'f'
),
'2' => array (
'login' => 'Zemfira'
'gender' => 'm'
)
);
|
| |
|
|
|
|
|
|
|
для: B@cZ
(12.02.2007 в 03:26)
| | Очень прошу не ссылайте меня на другие темы, мне бы хотелось увидеть сортировку именно для этого случая. | |
|
|
|
|
|
|
|
для: B@cZ
(12.02.2007 в 03:26)
| | функция называется uasort()
А представление о gender у Вас несколько превратное :) | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 09:48)
| | Никак не могу привыкнуть, что индексы массива могут быть не только целые числа...
А так можно было бы воспользоваться всортировкой ( половинным делением найти место,
куда надо вставить элемент, и вставить его туда, подвигая все следующие элементы массива ). | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 09:48)
| | Звиняюсь, чуток попутал, 3-и часа ночи было, епт) | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 09:48)
| | На счет uasort()
Функцию знаю, но как ее применить в данном случае, если она сортирует одномерный массив? | |
|
|
|
|
|
|
|
для: B@cZ
(12.02.2007 в 10:51)
| |
function cmp($a, $b) { return $a['login'] < $b['login'] ? -1 : ($a['login'] > $b['login']); }
uasort($arr, 'cmp');
|
В php любой массив - по жизни одномерный... Здесь Вам не алгол и не фортран. | |
|
|
|
|
|
|
|
для: Trianon
(12.02.2007 в 11:09)
| | Спасибо, я уже и сам сделал) Но все равно спасибо, меньше когда, будет вот так:
function cmp($a, $b) {
return strcmp($a['login'], $b['login']);
}
uasort($arr,'cmp') ;
|
| |
|
|
|
|
|
|
|
для: B@cZ
(12.02.2007 в 11:49)
| | Я и не знал, что можно так извращаться над вызовами ф-ций) | |
|
|
|