![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
Всем привет! Есть вопрос. Скажите, пожалуйста, как отсортировать массив в цикле. Например, есть массив: array(0,1,2,3). При каждой иттерации цикла for($i=0; $i<=3; $i++) нужно сортировать массив, первый элемент которого будет переменная из цикла $i, другие элементы должны быть в том порядке, в котором они были до сортировки. Наведу пример:
После 1-й иттерации массив будет выглядеть так: array(0,1,2,3), т.е. без изменений. После 2-й иттерации массив уже будет выглядеть так: array(1,2,3,0), т.е. первым элементом будет $i, а последним то, что было первым. После 3-й иттерации массив примет вид: array(2,3,0,1), и т.д. Элементы массива какбы смещаются. Курил мануалы, но стандартной функции не нашел. Может плохо "втягивался"? ;) |
|||
|
||||
Muerto |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Ostalex, Конечный результат какой должен быть?
из 7,5,3,2,6 нужно 7,6,5,3,2 ? для это есть функция sort Или же если я правильно понял
Не пойму зачем первый раз без изменений... но если изменения не нужны, то можно тупо через if пропустить... а проще твой цикл начать с 1 а не с 0 Это сообщение отредактировал(а) Muerto - 10.9.2010, 17:41 |
|||
|
||||
Ostalex |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
верно, вы не правильно поняли) уже есть отсортированый массив с самого начала, нужно просто "смещать" его элементы |
||||
|
|||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
если нужен только конечный результат, то достаточно просто вырезать из массива нужное количество элементов, а затем склеить.
это функции array_splice и array_merge если нужно на каждой итерации перемещать элементы (это, кстати, называется регистр), то array_shift и array_push полность решат проблему. первой функцией мы извлекаем первый элемент массива, второй кладём его в конец массива |
|||
|
||||
Muerto |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
То что я вам дал именно делает то что вам нужно... Хотя оратор после меня верно подметил насчет array_push |
||||||
|
|||||||
Ostalex |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 7.9.2010 Репутация: нет Всего: нет |
Да, спасибо, использовал шифт и пуш. для меня эти функции в диковинку, т.к. не приходилось еще с ними работать, поэтому такие вопросы |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |