У меня возникла такая задачка, нужно отсортировать ассоциативный массив. Но что-то массивы мне в голову не лезут, задачка сложновата. Не могу понять, как правильно подойти к процессу сортировки...
Вся сложность заключается в том, что мне нужно пересчитать значения выбранного массива и занести результат в отдельный массив, который будет как-то связан с тем массивом вычисления над которым производились, и так далее в цикле по всем массивам взятым из базы.
Затем, нужно выстроить взятые массивы из БД таким образом, чтобы вычисленные значения были в убывающем порядке.
В кратце:
Теоретически как-бы все просто.
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
)