Перейти к содержимому


Сортировка многомерного массива


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 8

#1 Murzik

Murzik

    Ковырятор

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPip
  • 12 040 сообщений
  • Пол: мужской
  • Город: Деревня на краю болота

Отправлено 16.09.2010 - 10:51

Понадобилось написать очередной велосипед.

После того, как я выложил вот эту штуку выяснилось, что нужно еще вывести топ результатов только по первой попытке прохождения теста.

Но CTestAttempt::GetList не возвращает такого поля, по которому можно было бы понять какая это попытка. Пришлось отсортировать выборку по дате и выбрать первые записи с уникальными полями USER_NAME.

Получился вот такой массив(первые 5 записей):

Array
(
	[0] => Array
		(
			[ID] => 83
			[USER_NAME] => (i.kodryashova) Илена Кодряшова
			[SCORE] => 150
		)
 
	[1] => Array
		(
			[ID] => 108
			[USER_NAME] => (a.karocheva) Алена Карочева
			[SCORE] => 130
		)
 
	[2] => Array
		(
			[ID] => 114
			[USER_NAME] => (e.ontlopova) Екатерина Онтлопова
			[SCORE] => 140
		)
 
	[3] => Array
		(
			[ID] => 115
			[USER_NAME] => (m.demed) Максим Демед
			[SCORE] => 140
		)
 
	[4] => Array
		(
			[ID] => 118
			[USER_NAME] => (e.kirеek) Евгений Киреек
			[SCORE] => 140
		)
 
	[5] => Array
		(
			[ID] => 133
			[USER_NAME] => (i.ivanova) Инга Иванова
			[SCORE] => 90
		)
 
)


Теперь его нужно отсортировать по SCORE. Делаю вот так:
array_multisort($arAttemptFill['ID'], SORT_ASC, SORT_NUMERIC,
		$arAttemptFill['USER_NAME'], SORT_ASC, SORT_STRING,
		$arAttemptFill['SCORE'], SORT_ASC, SORT_NUMERIC);

И ничего не происходит =( Как быть?

Сообщение отредактировал Murzik: 20.01.2012 - 19:08


#2 Russ

Russ

    05.11.17

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPip
  • 12 721 сообщений
  • Пол: мужской

Отправлено 16.09.2010 - 10:58

Кнута почитать :)

#3 Pux

Pux

    Активный участник

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPip
  • 22 574 сообщений
  • Пол: мужской
  • Город: Pihkva

Отправлено 16.09.2010 - 11:00

http://www.askdev.ru/
http://stackoverflow.com/

#4 muhas

muhas

    слава роботам!

  • Модераторы
  • PipPipPipPipPipPipPipPipPipPip
  • 38 575 сообщений
  • Пол: мужской

Отправлено 16.09.2010 - 11:05

присоединяюсь к пуху
но дам волшебную ссылку ещё http://tinyurl.com/2fxmmhg

#5 Murzik

Murzik

    Ковырятор

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPip
  • 12 040 сообщений
  • Пол: мужской
  • Город: Деревня на краю болота

Отправлено 16.09.2010 - 11:05

Просмотр сообщенияRuss (16.09.2010 - 10:58) писал:

Кнута почитать :)
Кнута я обязательно почитаю. Но тут же PHP на не Си

#6 ancient

ancient

    Постоянный участник

  • Пользователи
  • PipPip
  • 211 сообщений
  • Пол: мужской

Отправлено 16.09.2010 - 11:06

array_multisort($arAttemptFill['ID']

$arAttemptFill['ID'] - не работает, потому что нет в $arAttemptFill ключа ID.

#7 Murzik

Murzik

    Ковырятор

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPip
  • 12 040 сообщений
  • Пол: мужской
  • Город: Деревня на краю болота

Отправлено 16.09.2010 - 11:13

Просмотр сообщенияmuhas (16.09.2010 - 11:05) писал:

присоединяюсь к пуху
но дам волшебную ссылку ещё http://tinyurl.com/2fxmmhg
А ты посмтори что тебе выдаст. А потом посмотри что в посте написано. Везде приводится одна и та же функция array_multisort. В топе выдачи 10 одинаковых статей.

Так вот в моём случае эта функция не отрабатывает. Если сортировка удалась, оно должна вернуть true. У меня не возвращает, хотя всё сделано как в мануале.

Просмотр сообщенияancient (16.09.2010 - 11:06) писал:

array_multisort($arAttemptFill['ID']

$arAttemptFill['ID'] - не работает, потому что нет в $arAttemptFill ключа ID.
Всё, я понял в чём косяк. Пасиб.

Сообщение отредактировал Murzik: 16.09.2010 - 11:16


#8 TheMatrix

TheMatrix

    Активный участник

  • Пользователи
  • PipPipPipPipPipPip
  • 5 699 сообщений
  • Пол: мужской

Отправлено 16.09.2010 - 11:42

На правах небольшого оффтопа, хотя программистов касается в том числе. Товарищи, не забывайте о поправках ФЗ №363 от 27.12.2009 к ФЗ №152.

#9 Murzik

Murzik

    Ковырятор

  • Пользователи
  • PipPipPipPipPipPipPipPipPipPip
  • 12 040 сообщений
  • Пол: мужской
  • Город: Деревня на краю болота

Отправлено 16.09.2010 - 11:44

Просмотр сообщенияTheMatrix (16.09.2010 - 11:42) писал:

На правах небольшого оффтопа, хотя программистов касается в том числе. Товарищи, не забывайте о поправках ФЗ №363 от 27.12.2009 к ФЗ №152.
Тогда будем считать что все имена вымышлены, совпадения являются случайностью.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей