[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка массива по ключу
grisha2013
Доброе утро.

У меня возникла такая задачка, нужно отсортировать ассоциативный массив. Но что-то массивы мне в голову не лезут, задачка сложновата. Не могу понять, как правильно подойти к процессу сортировки...

Вся сложность заключается в том, что мне нужно пересчитать значения выбранного массива и занести результат в отдельный массив, который будет как-то связан с тем массивом вычисления над которым производились, и так далее в цикле по всем массивам взятым из базы.
Затем, нужно выстроить взятые массивы из БД таким образом, чтобы вычисленные значения были в убывающем порядке.

В кратце:

Теоретически как-бы все просто.
1. Пересчитать в цикле все данные взятые из базы и сохранить результат отдельно в ассоциативный массив
2. Отсортировать массив с результатами расчета в убывающем порядке
3. Пересоздать массив данных взятых из базы, в соответствии с сортировкой массива с результатами расчета. Фактически отсортировать и его по аналогии с результатами расчета.
4. После чего вывести данные взятые из базы уже в отсортированном виде, ну это тоже в цикле.

Уважаемые спецы, помогите. Как это хоть примерно будет выглядеть в коде, может я вообще не так мыслю, хз. Может быть можно обойтись без двойной сортировки?

// беру из базы ряд массивов
Array
(
[
0] => 1
[id] => 1
[1] => 8
[value1] => 8
[2] => 250
[value2] => 250
[3] => 1010
[value3] => 1010
[4] => 455
[value4] => 455
)

Array
(
[
0] => 2
[id] => 2
[1] => 60
[value1] => 60
[2] => 210
[value2] => 210
[3] => 101
[value3] => 101
[4] => 55
[value4] => 55
)

Array
(
[
0] => 3
[id] => 3
[1] => 35
[value1] => 35
[2] => 525
[value2] => 525
[3] => 90
[value3] => 90
[4] => 4
[value4] => 4
)


Нужно все эти массивы в цикле перебрать, разделить значение value2 на value1 и занести в отдельный массив результат расчета. Наверное должен создаваться тоже ассоциативный массив с результатами расчета.

В данном случае, результаты деления будут такие:

31.25
3.5
15

Затем нужно вывести на страницу массивы взятые из БД в убывающем порядке по результатам расчета.

31.25
15
3.5

то есть так:

Array
(
[
0] => 1
[id] => 1
[1] => 8
[value1] => 8
[2] => 250
[value2] => 250
[3] => 1010
[value3] => 1010
[4] => 455
[value4] => 455
)

Array
(
[
0] => 3
[id] => 3
[1] => 35
[value1] => 35
[2] => 525
[value2] => 525
[3] => 90
[value3] => 90
[4] => 4
[value4] => 4
)

Array
(
[
0] => 2
[id] => 2
[1] => 60
[value1] => 60
[2] => 210
[value2] => 210
[3] => 101
[value3] => 101
[4] => 55
[value4] => 55
)

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

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