разбитие массива по странично
В продолжение прошлого поста еще один класс.
На этот раз для разбиения массива по странично.
Для чего использывать думаю догадаетесь) например постраничный вывод новостей или гостевой)
Пример вызова:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | $map=new StartPage;//инициализация класса $arr=$map->StartPageMas($array, $page, $count, $url); #$arr - Массив результата работы класса; #$array - Массив для разбивки; #$page - Имя переменной GET с номером страницы (page); #$count - Количество записей на страницу; #$url - Адрес к страницам (/map.php?page=) #Обработка echo ' <ul>'; foreach($arr as $v){ echo " <li><a href="$v[link]">$v[name]</a></li> "; } echo '</ul> '; #Вывод навигатора echo $map->NextPageMas(); |
Код самого класса
Внешний вид навигатора настраивается в NextPageMas()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | class StartPage{ var $masiv; var $urls; var $kol; var $page;function StartPageMas($mas, $url, $kol, $page){ $this->masiv = $mas; $this->urls = $url; $this->kol = $kol; $this->page = $page; if($_GET[$this->urls]>(count($this->masiv)/$this->kol))$_GET[$this->urls]=$url=0; if(!isset($_GET[$this->urls])) $_GET[$this->urls]=0; $start = $this->kol * $_GET[$this->urls]; $startp = $this->kol * $_GET[$this->urls] + $this->kol; $kolvo = count( $this->masiv ); if($startp <= $kolvo) $stop = $startp; else if($kolvo < $startp) $stop = $kolvo; $s=0; foreach($this->masiv as $key=>$val){ if($start<=$s)$mm[$key]=$this->masiv[$key]; $s++; if($s==$stop) break; } return $mm; } function NextPageMas(){ $start = $this->kol * $_GET[$this->urls]; $startp = $this->kol * $_GET[$this->urls] + $this->kol; $kolvo = count( $this->masiv ); $sh=$this->kol; if($start==0) $start=1; if($startp <= $kolvo) $stop = $startp; else if($kolvo < $startp) $stop = $kolvo; $namber=0; $url_namber=1; $list=$start_ter=''; $list= ' <div class="str">Страницы: '; if($_GET[$this->urls]>0){ $num=$_GET[$this->urls] - 1; $list.= '<a href="'.$this->page.$num.'">предыдущая</a> '; } for($i=0; $i < $kolvo; $i=$i+$sh){ if($namber==$_GET[$this->urls]){ $list.= '<span><strong>'.$url_namber.'</strong></span> '; $namber++; $url_namber++; }else{ $list.= '<a href="'.$this->page.$namber.'">'.$url_namber.'</a> '; $namber++; $url_namber++; } } if($_GET[$this->urls]*$sh+$sh<$kolvo){ $num=$_GET[$this->urls] + 1; $list.= '<a href="'.$this->page.$num.'">следующая</a> '; } return $start_ter.$list.'</div> '; } } |
нужна разработка сайтов?
Комментариев пока нет.
Ваш отзыв
Классификатор
- JS (1)
- PHP (16)
- блогинг (4)
- Блогообзор (2)
- Веб-мастеру (11)
- интересное (19)
- Мой скрипт (10)
- Новости (12)
Теги
Поиск
Комментарии
- Александр Борисов к записи Постовой — плагин для WordPress
- sidash к записи Постовой — плагин для WordPress
- Alexander к записи Постовой — плагин для WordPress
- LaaCrus к записи Старт блогообзора
- ИстинА к записи Работа с почтой средствами PHP


