Вход

Просмотр полной версии : Сортировка массива!


mrKot
31.03.2015, 19:14
У меня сервер отдает данные в сортировке бд, ну выводишь на странице надо по другом порядке, у меня есть массив id
1,2,3,4,24,5,14,16,27,34,30,37,32,40,11,39,23,19,6 ,7,12,8,9,13,10,22,26,28,36,41,15,31,17,18,20,21,3 3,35,25,29,38 где надо выводить данные как мне это сделать?


Что было 1,2,3,4,24 а не 1,2,3,4,5,6

Пример массива



id: 27
nomer: 26



Надо сортировать по: nomer


Хотел вот так


function sIncrease(i,ii){
if(i.id>ii.id) return 1;
else if(i.id<ii.id) return -1;
else return 0;
}

Не вышло(

Заранее спасибо.

laimas
31.03.2015, 19:19
А по какой это закономерности после 4 должно быть 24?

рони
31.03.2015, 19:19
Надо сортировать по: nomer
sIncrease
где в функции nomer?

рони
31.03.2015, 19:21
Пример массива
сделайте нормальный пример

mrKot
31.03.2015, 19:22
id: 1
nomer: 1 Вот


real_id: 1

рони
31.03.2015, 19:27
mrKot,
:(

laimas
31.03.2015, 19:30
mrKot, если требуется некая сортировка не поддающаяся осмысленному, то читайте о ORDER BY FIELD.

mrKot
31.03.2015, 19:33
Вот такой массив!)

{
0: {
id: 1
nomer: 1
cnt: 5633
}
1: {
id: 2
nomer: 2
}
}

laimas
31.03.2015, 19:37
А почему вы выборку не сортируете сразу по нужному?

рони
31.03.2015, 20:20
Вот такой массив!)
обьект неотсортировать

mrKot
31.03.2015, 22:19
Не вышло вообще ничего(

laimas
31.03.2015, 22:29
id и nomer это поля SQL таблицы?

mrKot
31.03.2015, 22:30
Да mysql я знаю и так у мне это не поможет, так как часть данных идет с чужого сервера)

рони
31.03.2015, 22:40
mrKot,
неужели так сложно массив сделать для образца ? если у вас не массив, то обьект до сортировки и после сортировки -- а так ждите телепата который поймёт что вы сортируите.

laimas
31.03.2015, 22:41
А вы думаете вам JS поможет? Нет типа сортировки, которая бы догадалась, что после 4 должно следовать 24. Если знаете SQL, значит должны и знать, что для задания сортировки определенной в таблице создают поле ее описывающее. По другому ничего не получится.
Единственное, что можно сделать, это отсортировать опираясь на какую-то закономерность, если она у вас есть. Да и делать это надо средствами РНР, у него богаче инструментарий в этом плане.

mrKot
31.03.2015, 22:47
Вот такое поступает в sort
{
0: {
id: 1
nomer: 1
}
1: {
id: 2
nomer: 2
}
2: {
id: 3
nomer: 3
}
}


nomer планировалось после кого элемента вывести например если будет id 10 и он будет расположен в массиве, тот что с верху есть он будет идти 4 после прохождения в sort

рони
31.03.2015, 22:49
nomer планировалось после кого элемента вывести например если будет id 10 и он будет расположен в массиве, тот что с верху есть он будет идти 4 после прохождения в sort
не осилил

mrKot
31.03.2015, 22:51
ладно тогда

laimas
31.03.2015, 22:54
Функция sort не сортирует многомерные массивы, для этого существует функция array_multisort.