За последние 24 часа нас посетили 17107 программистов и 1248 роботов. Сейчас ищут 1070 программистов ...

Переставить в обратном порядке элементы массива

Тема в разделе "PHP для новичков", создана пользователем ChromeChrome, 28 янв 2014.

  1. ChromeChrome

    ChromeChrome Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    18
    Симпатии:
    0
    Переставить в обратном порядке элементы массива(не использовать стандартные функции)
    вот мои нароботки
    Код (Text):
    1. $arr = array(1,2,3,4,5,6);
    2. $max=$arr[0];
    3. $n=count($arr);
    4. for($i = 0; $i < $n/2; $i++){
    5. $temp=$arr[$i];
    6. $arr[$i]=$arr[$n-1-$i];
    7. $temp=$arr[$n-1-$i];
    8. }
    9. echo"<pre>";
    10. echo print_r($arr);
    11. echo"<pre>";
    описаное выше можно сделать и так
    • Код (Text):
      1. $a=array(1,2,3,4,5);
      2. for($i=count($a);$i>=0;$i--){
      3. echo$a[$i];}
    но мне важно исправить именно свои нароботки,поэтому
    помогите исправить мои нароботки
     
  2. immortal.1986

    immortal.1986 Активный пользователь

    С нами с:
    24 сен 2013
    Сообщения:
    257
    Симпатии:
    0
    Вопрос к тебе? почему не надо использовать встроенные фу-и?что бы код дольше работал?
    красивый код должен состоять по максимуму из встроенных фу-й
    Хочу строить дом без кирпичей и цемента!Помогите склеить водой кирпичи!
     
  3. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    а вы вкурсе что ваш код неправильно работает? )

    Добавлено спустя 8 минут 35 секунд:
    вот еще вариант для расширения кругозора)
    Код (PHP):
    1. $arr = array(1,2,3,4,5,6);
    2. for($i=0, $n=count($arr); $i<$n/2; ++$i) {
    3.     $arr[$i]      += $arr[$n-$i-1];
    4.     $arr[$n-$i-1] = $arr[$i] - $arr[$n-$i-1];
    5.     $arr[$i]      -= $arr[$n-$i-1];
    6. }
    7. echo '<pre>';
    8. print_r($arr);
    хотя count() же тоже встроенная функция. почему её можно использовать?)
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Потому что препод так задал )
     
  5. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    или вот еще) интересно начинающим падаванам
    Код (PHP):
    1. $arr = array(1,2,3,4,5,6);
    2. for($i=0, $n=count($arr); $i<$n/2; ++$i) {
    3.     $arr[$i]      = $arr[$i] ^ $arr[$n-$i-1];
    4.     $arr[$n-$i-1] = $arr[$i] ^ $arr[$n-$i-1];
    5.     $arr[$i]      = $arr[$i] ^ $arr[$n-$i-1];
    6. }
    7. echo '<pre>';
    8. print_r($arr);
     
  6. ChromeChrome

    ChromeChrome Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    18
    Симпатии:
    0
    чё за хрень....? можно ли мой код довести до работоспособного?я знаю Java(которая не скрипт) тот код который я прислал стандартный алгоритм из книги Седжвика,тк я с php только знакомлюсь,то я взял тот ява код и переписал его как мог на php ,естественно у меня получилась хрень, так можит ктонить перепишет код написанный в теме более нормально,чем ту хрень написанную в коментариях?
     
  7. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    смотрим в книгу - видим фигу?
    ошибка тут: $temp=$arr[$n-1-$i];
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Вы ругаетесь и что-то требуете, оправдывая это своей несознательностью? Прекрасный способ расположить к себе людей и не быть посланным наxyй.
     
  9. ChromeChrome

    ChromeChrome Новичок

    С нами с:
    14 июл 2013
    Сообщения:
    18
    Симпатии:
    0
    здесь должно быть
    Код (Text):
    1.  $arr[$n-1-$i]=$temp;
    ,вот так работает
     
  10. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    поздравляю!
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    =(
    Код (PHP):
    1. $arr=array(1,2,3,4,5,6,7,8,9,10);
    2. $sizeof=sizeof($arr)-1;
    3. for($i=$sizeof;$i>$sizeof/2;--$i) {
    4.     $arr[$i]^=$arr[$sizeof-$i];
    5.     $arr[$sizeof-$i]^=$arr[$i];
    6.     $arr[$i]^=$arr[$sizeof-$i];
    7. }
    8. echo'<pre>';
    9. print_r($arr);
    =(
    Код (PHP):
    1. $arr=array(1,2,3,4,5,6,7,8,9,10);
    2. $arr=array_reverse($arr);
    3. echo'<pre>';
    4. print_r($arr);
    =)