Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Осуществить циклический сдвиг элементов массива 
:(
    Опции темы
cheburashkaRF
Дата 25.1.2014, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2011
Где: Новосибирск

Репутация: нет
Всего: нет



Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо или влево на одну позицию.
Код

define("n", 10);//константа
for($i=0;$i<=n;$i++)
{    
  $arr[$i] = rand(1,10);
  $temp=$a[n];  
  echo$arr[$i]." ";//выводим массивчик для наглядности
}
echo"<br>";
for ($i=n;$i<=count($arr);$i++)
{
  $arr[$i]=$arr[$i-1];
  $arr[1]=$temp; 
}
for ($i=1;$i<=n;$i++){
  echo $arr[$i].' ';//итог
}

вот мои наработки
PM MAIL   Вверх
AJIeKceuD
Дата 28.1.2014, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



как вариант:
Код

$arr = range(1, 10);
print_r($arr);

$result = array();
$i_max = count($arr);
for ($i = $i_max; $i >= 0; $i--) {
    if ( $i == 0 ) {
        $result[$i_max - 1] = $arr[$i];
    }
    else {
        $result[$i-1] = $arr[$i];
    }
}

print_r($result);


PS
там будет нотис, но я с ним уже не стал бороться

Это сообщение отредактировал(а) AJIeKceuD - 28.1.2014, 14:14
PM MAIL   Вверх
Gold Dragon
Дата 28.1.2014, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



или я не понял вопрос или что-то такое

Код

$a = array('a1', 'a2', 'a3', 'a4', 'a5');

// исходный массив
print_r($a);

// сдвинутый влево
print_r(leftArray($a));

// сдвинутый вправо
print_r(rightArray($a));

/**
 * Двигаем массив вправо
 * @param array $arr
 *
 * @return array: 
 */
function rightArray($arr){
    $item = array_pop($arr);
    array_unshift($arr, $item);
    return $arr;
}

/**
 * Двигаем массив влево
 * @param array $arr
 *
 * @return array:
 */
function leftArray($arr){
    $item = array_shift($arr);
    array_push($arr, $item);
    return $arr;
}


результат:
Цитата

Array ( 
   [0] => a1 
   [1] => a2 
   [2] => a3 
   [3] => a4 
   [4] => a5 
)

Array (
   [0] => a2 
   [1] => a3 
   [2] => a4
   [3] => a5 
   [4] => a1 
)

Array (
   [0] => a5 
   [1] => a1 
   [2] => a2 
   [3] => a3 
   [4] => a4 
) 



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
AJIeKceuD
Дата 29.1.2014, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 6.9.2012

Репутация: нет
Всего: нет



Gold Dragon, твой вариант лучше )
PM MAIL   Вверх
Gold Dragon
Дата 29.1.2014, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а то  smile зачем гонять массив когда есть встроенные механизмы... Странно, почему в PHP нет отдельных таких функций... наверное очень мало востребованы


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
_zorn_
Дата 4.2.2014, 05:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Хотел предложить вариант со встроенными функциями, но Gold Dragon опередил.
Сам раньше лисапеды изобретал smile В пхп много функций работы с массивами, пользуйтесь на здоровье.
http://ru2.php.net/manual/en/ref.array.php
PM MAIL   Вверх
capitan
Дата 4.2.2014, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Цитата(_zorn_ @ 4.2.2014,  05:13)
В пхп много функций работы с массивами, пользуйтесь на здоровье.
http://ru2.php.net/manual/en/ref.array.php

На php есть и русская ветка, если что. http://ru2.php.net/manual/ru/ref.array.php
PM MAIL WWW ICQ   Вверх
_zorn_
Дата 6.2.2014, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1076
Регистрация: 21.8.2007

Репутация: 6
Всего: 12



Цитата(capitan @  4.2.2014,  20:03 Найти цитируемый пост)
На php есть и русская ветка, если что.

Очень нужное замечание, ага. Особенно сложно перевести фразу "Change language: " справа вверху.

Есть и японская, и что ?
PM MAIL   Вверх
capitan
Дата 6.2.2014, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



Цитата(_zorn_ @ 6.2.2014,  07:20)
Цитата(capitan @  4.2.2014,  20:03 Найти цитируемый пост)
На php есть и русская ветка, если что.

Очень нужное замечание, ага. Особенно сложно перевести фразу "Change language: " справа вверху.

Есть и японская, и что ?

А почему вы так уверены, что все знают английский? Мы вроде как общаемся на русскоязычном форуме, где все пишут по русски. По этому, по фэншую, нужно давать ссылку на русские доки, раз уж даете, тем более, что с недавнего времени на php.net они появились. Но это мой феншуй, вы можете делать как захотите.
P.S. Прошу прощения за offtop.

Это сообщение отредактировал(а) capitan - 6.2.2014, 12:33
PM MAIL WWW ICQ   Вверх
baldina
Дата 6.2.2014, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



 smile 
английский как-бэ технический международный язык, специалист должен им владеть хотя бы на уровне чтения проф. литературы. бОльшая часть информации впервые появляется на английском, значительная - только на английском. на том же php.net оригинал на английском, прочие языки - переводы (разного качества)
PM MAIL   Вверх
capitan
Дата 6.2.2014, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 9
Всего: 13



baldina, я полностью согласен, что документацию желательно читать в первоисточнике. Я не говорил, что это не правильно, я говорил, что это удобнее для остальных. Кто захочет почитать первоисточник, почитает. smile Но, большинство таких, кто читает её на русском. И смысл размещать ссылку, если большинство её не читают? Её полезность теряется. Вот что я имел ввиду. Полезность smile

Это сообщение отредактировал(а) capitan - 6.2.2014, 15:54
PM MAIL WWW ICQ   Вверх
baldina
Дата 6.2.2014, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 26
Всего: 101



Цитата(capitan @  6.2.2014,  15:54 Найти цитируемый пост)
И смысл размещать ссылку, если большинство её не читают

ну зачем же так про большинство  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0538 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.