|
|
|
| Мужики, а существуют ли функции для ротации одномерного массива?
Скажем, дали так:
array('Воскресенье', 'Понедельник','Вторник','Среда','Четверг','Пятница','Субота');
|
а надо начать с понедельника. и что, вручную всё перебирать? | |
|
|
|
|
|
|
|
для: Zilog
(03.11.2012 в 18:52)
| | Это не ротация а сдвиг, и функции для этого нет. Вы заглядываете вообще в описание разделов РНР? Неужели это трудно сделать, чтобы не спрашивать какие есть функции, а каких нет?
А если заглянете, все таки, то найдете две функции - array_pop и array_push. | |
|
|
|
|
|
|
|
для: confirm
(03.11.2012 в 19:03)
| | >Это не ротация а сдвиг
Судя по вашему тону, вас паяльником заставляют писать. И на том спасибо.
Я надеялся, что в php могла бы оказаться функция аналогичная Rotate And Roll
http://helpsite.narod.ru/asm/386/65.htm | |
|
|
|
|
|
|
|
для: Zilog
(03.11.2012 в 19:20)
| | Причем тут тон? Можно понять, когда спрашивают о проблеме, но чтобы вам еще перечислять чего есть, а чего нет в языке, так это с чьей стороны мягко выражаясь "хамство"?
Ротация, это замена, а начать со следующего, переставив первый в конец, это таки сдвиг будет.
Но зачем? Пропишите массив так, как и требуется, зачем его гонять? Ну и второе, если это для вывода дней недели по текущей дате, то это функцией strftime(), без всяких доп. массивов. | |
|
|
|
|
|
|
|
для: confirm
(03.11.2012 в 19:26)
| | >Причем тут тон? Можно понять, когда спрашивают о проблеме, но чтобы вам еще перечислять чего есть...
Кто где и когда вас просил что-то перечислять? Посмотрите ещё раз как сформулирован вопрос.
>Ротация, это замена, а начать со следующего, переставив первый в конец, это таки сдвиг будет.
Ротация — это замена? #8-[ ]
В словаре: РОТАЦИЯ -и; ж. [от лат. rotatio - круговращение] 1. Последовательное постепенное перемещение элементов какой-л. структуры с места на место,
В ассемблере, например команда ROL (Rotate Without Carry)
Схема работы команды: http://www.c-jump.com/CIS77/asm_images/ROL.png | |
|
|
|
|
|
|
|
для: Zilog
(04.11.2012 в 01:20)
| | >Кто где и когда вас просил что-то перечислять?
Зачем спрашивать есть ли функция? На такие вопросы ответ ищите сами, ну не в службу же 09 превращать форум.
>Ротация — это замена?
Мы тут практически об одном и том же, только вы непосредственно о значении термина (значит для себя ищите в описаниях на английском), а я о сути происходящего. У нас ротацией и обновление называют.
Что касается ассемблера, то суть этих команд описывается как сдвиг (логический, арифметический, и т.д.), а вам нужен циклический сдвиг с учетом флага переноса, то есть, сдвиг по кольцу. И в РНР, будь подобная функция, она бы описывала не "ротацию", а "сдвиг". Как описываются операторы << и >> ?
<?
array_push($array, array_shift($array));
| Если будете выполнять в цикле, значит и получите постоянный циклический сдвиг элементов массива влево.
Но РНР не ассемблер, и есть у него функции работы с датами, и среди них есть та, что, в зависимости от установленной локали, будет выдавать информацию на указанном языке. То есть, не надо массивов описывающих дни, месяцы на русском языке, забыли об ассемблере, и смотрим раздел этих функций языка. | |
|
|
|
|
|
|
|
для: confirm
(04.11.2012 в 05:44)
| | > У нас ротацией и обновление называют.
>Что касается ассемблера
У кого, это, "у нас"? Ротация — это ротация, что вы людям мозги пудрите, какое нафиг обновление?
А что касается ассемблера, то вы его не знаете или не понимаете. Чем ротация отличается от циклического сдвига? Не тем ли, что во втором случае мы описываем явление двумя словами всместо одного? Вас не задумывает тот факт, что сама команда, например, ROR на вражском языке звучит как ROtate Right?
Слово "ротация" http://ru.wiktionary.org/wiki/%F0%EE%F2%E0%F6%E8%FF
А флаг переноса — это всего лишь флаг переноса, в приведённых командах ассемблера, к непосредственно к циклическому сдвигу (ротации) отношения не имеет. Он только реагирует на то, какой бит выходит "за край".
Вы успокойтесь, не берите на себя лишнего. Речь не о датах и локалях.
То, что нужных функций нет уже давно ясно. | |
|
|
|
|
|
|
|
для: Zilog
(05.11.2012 в 16:53)
| | >У кого, это, "у нас"?
В России.
Я вам уже вроде бы сказал, что отвечаю вам не на вражеском языке, а на русском, и ищите вы среди русского, поэтом не надо пугать терминами - просто не найдете вы в руководстве РНР, если будет искать "ротацию". А о командах ассемблера я и без вас осведомлен. | |
|
|
|
|
|
|
|
для: confirm
(05.11.2012 в 17:08)
| | >В России.
Значит мы в разных Россиях. А в нашей России обновление и ротацию не путают.
>отвечаю вам не на вражеском языке, а на русском, и ищите вы среди русского,
Вас в предыдущем посте ожидает ссылка на пояснения и этимологию к слову "ротация", на русском языке. добро пожаловать.
>А о командах ассемблера я и без вас осведомлен.
Мы давно поняли, что вы очень умный. | |
|
|
|
|
|
|
|
для: Zilog
(05.11.2012 в 17:13)
| | Я обыкновенный. Об этимологии, это не ко мне, а к тем что так используют, например, депутатам.
По сути вашего вопроса вам требуется обычный сдвиг. На машине, так это регистр сдвига, а не ротации, и скорее всего, кольцевой регистр, так как, думаю, воскресение вам нужно в конец поместить.
Вы с этой ротацией так же как и разделе HTML - текстарея, и прочая абракадабра. Нет текстареи, есть текстовая область, как нет и ротации в функциях работы с массивами, есть понятие сдвига элементов. Не нравится, значит ищите в первоисточниках. | |
|
|
|
|