Подобное набросал, но к сожалению работает криво ((( мало того сортирует не в том направлении который мне нужен, так еще иногда путает местами (
PHP:
скопировать код в буфер обмена
// Берем значение (позицию в массиве) с какого ключа начинать отсчет $cf = $config->row_array(); // Берем массив с данными (текст) $res = $query->result_array(); // берем общее колличество массива с данными (текст) $count = $query->num_rows()-1; // Если позиция ключа больше общего колличества массива или меньше или равно нулю то if($cf['Order'] > $count || $cf['Order'] <= 0) { // Позицию в массиве делаем равным общему колличеству например 0 = 5 $cf['Order'] = $count; // обновляем данные в базе $this->db->update('config', array('Order' => $cf['Order'])); } else { // если позиция ключа в не выходит за пределы, то просто отнимаем от нее один $this->db->update('config', array('Order' => $cf['Order']-1 )); } // создаем пустой массив // $i равно позинции в массиве $i = $cf['Order']; // 5 while(1) { // если i меньше 0 то приравниваем к общему колличеству if($i < 0) $i = $count; // заносим данные в новый массив $new[] = $res[$i]; // если i равна нулю, то приравниваем к общему колличеству if($i == 0) $i = $count; // если не равно нулю, отнимаем единичку else $i--; //4 // если i равно позиции в массиве, то завершаем цикл if($i == $cf['Order']) break; }
Это своего рода очередь, т.е. отображение сообщений
имеем массив с 4 записями
1 => Текст1
2 => Текст2
3 => Текст3
4 => Текст4
требуется сделать следующее, чтоб при каждом запросе он выдавал сортировку начиная с заданного ключа
т.е. если значение из базы равно 3 то сортировать должен с 3, получится следующее:
1
2
3
4
4
1
2
3
3
4
1
2
2
3
4
1
1
2
3
4
тоесть нижнее значение перемещается наверх, сдвигая все остальные вниз))
в моем примере работает с точностью да на оборот... у мну верхние значения замещают нижние, и то криво, иногда путаются))) т.е.
1
2
3
4
2
3
4
1
3
4
1
2
4
1
2
3
1
2
3
4
|