разбитие массива по странично
В продолжение прошлого поста еще один класс.
На этот раз для разбиения массива по странично.
Для чего использывать думаю догадаетесь) например постраничный вывод новостей или гостевой)
Пример вызова:
$map=new StartPage;//инициализация класса
$arr=$map->StartPageMas($array, $page, $count, $url);
#$arr - Массив результата работы класса;
#$array - Массив для разбивки;
#$page - Имя переменной GET с номером страницы (page);
#$count - Количество записей на страницу;
#$url - Адрес к страницам (/map.php?page=)
#Обработка
echo '
- ';
- $v[name]
foreach($arr as $v){
echo "
";
}
echo '
';
#Вывод навигатора
echo $map->NextPageMas();
Код самого класса
Внешний вид навигатора настраивается в NextPageMas()
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= '
if($_GET[$this->urls]>0){
$num=$_GET[$this->urls] - 1;
$list.= 'предыдущая ';
}
for($i=0; $i < $kolvo; $i=$i+$sh){
if($namber==$_GET[$this->urls]){
$list.= ''.$url_namber.' ';
$namber++;
$url_namber++;
}else{
$list.= ''.$url_namber.' ';
$namber++;
$url_namber++;
}
}
if($_GET[$this->urls]*$sh+$sh<$kolvo){
$num=$_GET[$this->urls] + 1;
$list.= 'следующая ';
}
return $start_ter.$list.'
';
}
}
Комментариев пока нет.
Ваш отзыв
Классификатор
- JS (1)
- PHP (15)
- блогинг (4)
- Блогообзор (2)
- Веб-мастеру (10)
- интересное (18)
- Мой скрипт (10)
- Новости (12)
Теги
Поиск
Комментарии
- Konstantin к записи 370 запрещенных паролей твиттера
- Alexander к записи Постовой – плагин для WordPress
- LaaCrus к записи Старт блогообзора
- ИстинА к записи Работа с почтой средствами PHP
- Первый отчет по эксперименту с блогуном | 1000$ к записи Постовой – плагин для WordPress


