За последние 24 часа нас посетили 45373 программиста и 1813 роботов. Сейчас ищут 849 программистов ...

Изменения в массиве

Тема в разделе "Прочие вопросы по PHP", создана пользователем skillful, 26 май 2014.

  1. skillful

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

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    Здравствуйте. Можно ли решить такую задачу...

    Код (Text):
    1. $a = array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
    2. echo '<pre>'. print_r ($a, true).'</pre>';
    3. Array
    4. (
    5.     [0] => 1
    6.     [1] => 2
    7.     [2] => 3
    8.     [3] => 4
    9.     [4] => 5
    10.     [5] => 6
    11.     [6] => 7
    12.     [7] => 8
    13.     [8] => 9
    14.     [9] => 10
    15.     [10] => 11
    16.     [11] => 12
    17.     [12] => 13
    18.     [13] => 14
    19.     [14] => 15
    20.     [15] => 16
    21.     [16] => 17
    22. )
    Код (Text):
    1. $array = array_slice($a, -5, 5);
    2. echo '<pre>'. print_r ($array, true).'</pre>';
    3. Выводит:
    4. Array
    5. (
    6.     [0] => 13
    7.     [1] => 14
    8.     [2] => 15
    9.     [3] => 16
    10.     [4] => 17
    11. )
    Код (Text):
    1. $array = array_slice($a, -10, 5);
    2. echo '<pre>'. print_r ($array, true).'</pre>';
    3. Выводит:
    4. Array
    5. (
    6.     [0] => 8
    7.     [1] => 9
    8.     [2] => 10
    9.     [3] => 11
    10.     [4] => 12
    11. )
    Код (Text):
    1. $array = array_slice($a, -15, 5);
    2. echo '<pre>'. print_r ($array, true).'</pre>';
    3. Выводит:
    4. Array
    5. (
    6.    [0] => 3
    7.     [1] => 4
    8.     [2] => 5
    9.     [3] => 6
    10.     [4] => 7
    11. )
    Код (Text):
    1. $array = array_slice($a, -20, 5);
    2. echo '<pre>'. print_r ($array, true).'</pre>';
    3. Выводит:
    4. Array
    5. (
    6.     [0] => 1
    7.     [1] => 2
    8.     [2] => 3
    9.     [3] => 4
    10.     [4] => 5
    11. )
    А нужно, чтобы на выходе было:
    Код (Text):
    1. Array
    2. (
    3.     [0] => 1
    4.     [1] => 2
    5. )
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А словами?
     
  3. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    исходя из выше представленной логики, следует такой вариант

    Код (Text):
    1.  
    2. $array = array_slice($a, -20, 2);
    3. echo '<pre>'. print_r ($array, true).'</pre>';
    4. Выводит:
    5. Array
    6. (
    7.     [0] => 1
    8.     [1] => 2
    9. )
     
  4. skillful

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

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    Массив А - это скажем новости. Нужно сделать постаничную навигацию по 5 новостей на странице. При чем на первой странице должны отображаться последние новости. Для этого воспользовался функцией array_slice($a, -20, 5); Минус значит изначально выбираем 5 новостей с низу. Все нормально работает когда ставим 5, 10, 15, а вот когда 20 Выходят уже новости 1, 2, 3, 4, 5. Это не правильно, потому-что новости 3, 4, 5 выходили когда ставили 15. Вот так вот. Может я слишком заморочился. И стоит перевернуть массив?
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а зачем тебе -20? =) и откуда у тебя такой странный массив?
     
  6. skillful

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

    С нами с:
    30 ноя 2010
    Сообщения:
    73
    Симпатии:
    0
    Починил сам, просто перевернув массив