За последние 24 часа нас посетили 18766 программистов и 1647 роботов. Сейчас ищут 1752 программиста ...

Перевод двух строчек с JavaScript на PHP

Тема в разделе "JavaScript и AJAX", создана пользователем Olejonok, 7 мар 2017.

  1. Olejonok

    Olejonok Новичок

    С нами с:
    7 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте.

    Есть такой интересный для меня алгоритм пагинации на JavaScript :
    Код (Javascript):
    1. function pagination(num,limit,range)
    2. {
    3.    range = range||3;
    4.    var arr = [];
    5.    for (var i=1; i<=limit; i++)  {
    6.     if(i <= range||(i > num -range/2&&i < num + range/2)||i>limit - range)
    7.     {if (arr[arr.length-1]&& i != arr[arr.length-1]+1)arr.push('...');arr.push(i)}
    8. }
    9.   return arr
    10.  
    11. }
    12. alert(pagination(5,20)+"\n"+pagination(7,20)+"\n"+pagination(16,20));
    не могли бы вы помочь мне его перевести на PHP.
    Моя попытка не увенчалась успехом :(
    PHP:
    1. function pagination($num,$limit,$range)
    2. {
    3.  
    4.    $range = $range||3;
    5.    $arr = array();
    6.  
    7.    for ($i=1; $i<=$limit; $i++)  {
    8.         if ($i <= $range||($i > $num - $range/2&&$i < $num + $range/2)||$i>$limit - $range)
    9.         {
    10.             if ($arr[count($arr)-1] && $i != $arr[count($arr)-1]+1) $arr[] = '...';
    11.             $arr[] = $i;
    12.         }
    13.    }
    14.   return $arr;
    15. }
    16.  
    17. print_r(pagination(5,20));
    Спасибо.
     
  2. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    PHP:
    1. <?php
    2. function pagination($num, $limit, $range = 3) {
    3.     $arr = [];
    4.     for($i = 1; $i <= $limit; $i++) {
    5.         if($i <= $range || ($i > $num - $range / 2 && $i < $num + $range / 2) || $i > $limit - $range) {
    6.             if (!empty($arr[count($arr) - 1]) && $i != $arr[count($arr) - 1] + 1) $arr[] = '...';
    7.             $arr[] = $i;
    8.         }
    9.     }
    10.     return $arr;
    11. }
     
    Olejonok нравится это.
  3. Olejonok

    Olejonok Новичок

    С нами с:
    7 мар 2017
    Сообщения:
    2
    Симпатии:
    0
    Спасибо, про 'empty' я бы долго наверное не догадался :)
     
  4. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Или isset()
     
    Olejonok нравится это.