За последние 24 часа нас посетили 15600 программистов и 1551 робот. Сейчас ищут 874 программиста ...

Перевернуть массив

Тема в разделе "PHP для новичков", создана пользователем troelsenon, 26 мар 2017.

  1. troelsenon

    troelsenon Активный пользователь

    С нами с:
    13 ноя 2015
    Сообщения:
    19
    Симпатии:
    2
    Доброго времени суток!
    Про array_reverse знаю, но хочу сделать без этой функции.
    Переворачиваю массив, по моим сообажениям массив должен быть такой: Array ( [0] => o [1] => l [2] => l [3] => e [4] => h ) , а на деле получается такой: Array ( [0] => 0 [1] => o [2] => l [3] => l [4] => e [5] => h ).
    Подскажите почему первый элемент массива = [0] => 0 , а не [0] => o. Заранее благодарен!

    Вот мой пример:
    PHP:
    1. $arr=array('h','e','l','l','o');
    2. $reversed=array(0);
    3. for($i=count($arr)-1; $i>=0; $i--){
    4.     if ($i > count($arr)-1) {
    5.         break;
    6.     }
    7.     $reversed[]=$arr[$i];
    8. }
    9. print_r($reversed);
     
  2. alexblack

    alexblack Старожил

    С нами с:
    20 янв 2016
    Сообщения:
    640
    Симпатии:
    381
    Вместо
    PHP:
    1. $reversed=array(0);
    Нужно
    PHP:
    1. $reversed=[];
     
    troelsenon нравится это.
  3. troelsenon

    troelsenon Активный пользователь

    С нами с:
    13 ноя 2015
    Сообщения:
    19
    Симпатии:
    2
    Огромное спасибо!
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.819
    Симпатии:
    1.333
    Адрес:
    Лень
  5. troelsenon

    troelsenon Активный пользователь

    С нами с:
    13 ноя 2015
    Сообщения:
    19
    Симпатии:
    2
    "Про array_reverse знаю, но хочу сделать без этой функции."
    Но, и вам спасибо за уделенное время.
     
  6. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    можно перебирать массив только до половины...
     
  7. troelsenon

    troelsenon Активный пользователь

    С нами с:
    13 ноя 2015
    Сообщения:
    19
    Симпатии:
    2
    не понял вас. можете пояснить?
     
  8. Fell-x27

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

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Он имеет ввиду, что количество перестановок в массиве равно половине его длины. Если длина нечетная, то половина целочисленного деления длины+1. Но, при этом это "+1" будет в самом центре, и будет тем элементом, позиция которого не изменится. Так что его можно тупо откинуть. То есть массив из 10-11 элементов можно перевернуть за 5 итераций, а не за 10-11
     
  9. Abyss

    Abyss Старожил

    С нами с:
    12 дек 2015
    Сообщения:
    1.298
    Симпатии:
    218
    Адрес:
    Default city
    wtf ?
    PHP:
    1. $arr = ['h','e','l','l','o'];
    2. $new_arr = [];
    3. for($i=count($arr)-1; $i >= 0; $i--){
    4.     $new_arr[] = $arr[$i];
    5. }
    6. var_dump($new_arr);