PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine Kogemused Array elementide lehtedele jaotamine kasutades foreach'i
Autor Abi Postitus Abi

donkey
Trooja eesel


Postitusi: 317
Tase: 6
Olek: Offline

Hinnang: Administratiivhinnang: 7/10Administratiivhinnang: 7/10Administratiivhinnang: 7/10Administratiivhinnang: 7/10Administratiivhinnang: 7/10Administratiivhinnang: 7/10Administratiivhinnang: 7/10
Array elementide lehtedele jaotamine kasutades foreach'i

Lihtne koodijupikene, mida saab kasutada, kui on vaja arrays olevaid elemente lehtedele jaotada. Lihtsalt tükeldab array vastava pikkuseni, kasutades lehekülje numbrit, mille saab aadressiribalt.

PHP kood:



    <?php 
                
                $arr
=array('a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w'); //array
                
$lehele=5;//mitu elementi kuvame lehele
                 

                 
if (empty($_GET['lk'])) {
                          
$_GET['lk']=1;
                 }

                 
$lk=$_GET['lk'];
                 
$lk--;

                 
$eest=$lehele*$lk

                 
$kokku=count($arr);
                 
$yle=$kokku-$lehele-$eest;

                 if (
$yle!==and $yle>0) {
                          
array_splice ($arr, -$yle);
                 }
                 
$arr=array_reverse($arr);

                 if (
$eest!==0) {
                          
array_splice ($arr, -$eest); 
                 }
                 
$arr=array_reverse($arr);
                 
$l=$kokku/$lehele;

                 if (
round($l)!=and $kokku>$lehele) {
                          echo 
'<div align="center" >';
                         
$l=$kokku/$lehele;



                         if (
$_GET['lk']!=1) {
     
                              
$lku=$_GET['lk']-1;
                           echo 
'<a href="?lk=1">esimene</a> <a href="?leht='.$_GET['leht'].'&lk='.$lku.'"><<</a> ';
            
                        } else {
                                      echo 
'esimene << ';
                        }
        
                         
$il=round($l,0);
                         
$ar=$il-3;

                         foreach (
range(1ceil($l)) as $number) {
                                         if (
$_GET['lk']!=$number) {
                                            echo 
'<a href="?leht='.$_GET['leht'].'&lk='.$number.'">'.$number.'</a> ';
                                     } else {
                                                      echo 
$number.' ';
                                    }
        
                    }
        
                         if (
$_GET['lk']!=ceil($l)) {
                                
$lku=$_GET['lk']+1;
                               echo 
' <a href="?leht='.$_GET['leht'].'&lk='.$lku.'">>></a> <a href="?leht='.$_GET['leht'].'&lk='.ceil($l).'">viimane</a>';
                         } else {
                                      echo 
' >> viimane';
                         }
        
                         echo 
'</div>';
                 }







    
                 foreach (
$arr as $taht) {
                                 echo 
$taht.''
                 }
    
     
?>

 



Väga hea, kui kuvada näiteks pilte funktsiooniga glob()
Kui keegi on sama asja kuidagi teistmoodi või lihtsamini lahendanud, andke aga märku

___________________________________________________
E-MAIL MSN

10.12.2006 19:23:03 Vajutades siia näed kasutaja donkey profiili

andoro

Postitusi: 1235
Tase: 9
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Array elementide lehtedele jaotamine kasutades foreach'i

Tegin kiirelt mingi classi..
PHP kood:

class array_pages
{
    var 
$arr;
    var 
$per_page;
    var 
$pg_var;
    
    var 
$total;
    var 
$pages;
    var 
$cur_page;
    
    function 
array_pages($array$per_page 10$pg_var 'page')
    {
        
$this->arr $array;
        
$this->per_page $per_page;
        
$this->pg_var $pg_var;
        
        
$this->total count($this->arr)-1;
        
$this->pages ceil($this->total/$this->per_page);
        
$cur_page isset($_GET[$this->pg_var]) ? (int)$_GET[$this->pg_var] : 1;
        
$cur_page $cur_page $cur_page;
        
$this->cur_page $cur_page $this->pages $this->pages $cur_page;
        
        
$this->start = ($this->cur_page 1) * $this->per_page 1;
        
$this->end $this->start $this->per_page 1;
    }

    function 
pages($tpl1 '<a href="?id=1&%1">%2</a>'$tpl2 '%2'$separator ' ')
    {
        
$str '';
        for(
$i 1$i <= $this->pages$i++)
        {
            
$tpl = ($i == $this->cur_page) ? $tpl2 $tpl1;
            
$tpl str_replace('%1'$this->pg_var.'='.$i$tpl);
            
$tpl str_replace('%2'$i$tpl);
            
            
$str .= ($i 1) ? $separator '';
            
$str .= $tpl;
        }

        return 
$str;
    }
    
    function 
rows()
    {
        
$n $this->arr;
        return 
array_splice($n$this->start 1$this->per_page);
    }

    function 
show($tpl1 '%2'$separator '<br>')
    {
        
$arr $this->rows();
        
$i 0;
        
$str '';

        foreach(
$arr as $k => $v)
        {
            
$tpl str_replace('%1'$k$tpl1);
            
$tpl str_replace('%2'$v$tpl);
            
            
$str .= $i $separator '';
            
$str .= $tpl;
            
$i++;
        }

        return 
$str;
    }
}
$array array('a''b''c''d''e''f''g''h''i''j''k''l''m''n''o''p''q''r''s''t''u''v''w');
$x = new array_pages($array3'lk');
echo
'Total rows: <b>'.$x->total.'</b><br>';
echo
'Showing rows: <b>'.$x->start.' TO '.$x->end.'</b><br>';
echo 
$x->pages('<a href="?%1">[ %2 ]</a>''<b>[%2]</b>''&nbsp;').'<br><br>';
#SHOW METHOD 1
echo $x->show().'<br><br><br>';

#SHOW METHOD 2
$i 0;
$ar $x->rows();
foreach(
$ar as $k)
{
    echo 
$i ':' '';
    echo 
$k;
    
$i++;
}



___________________________________________________
Ma oskan lugeda numbreid  2 3 4 5 6 7 8 9 10 poiss, emand, kunn, äss.

08.04.2007 17:05:06 Vajutades siia näed kasutaja andoro profiili

muidumeez
Ignorantia non est
argumentum


Postitusi: 3864
Tase: Administraator
Olek: Offline

Hinnang: Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10Administratiivhinnang: 10/10
RE: Array elementide lehtedele jaotamine kasutades foreach'i

Kasutades foreach direktiivi võiks meeles pidada, et "as" saab suunata nii elemendile kui võtmele ja elemendile. Ehk siis
PHP kood:


foreach ($massiiv as $element)


PHP kood:


foreach ($massiiv as $vqti=>$element)


Igatahes oli miskises 4.3.x versioonis viga sees, kus esimene variant ei töötanud õigesti. Ja kui asjasse süübida, siis eks ole ikka õigem anda edasi ka võti. Seda võib nii mõnigi kord vaja minna

___________________________________________________
An Opinion Is Like An Asshole -- Everybody Has One

08.04.2007 20:49:51 Vajutades siia näed kasutaja muidumeez profiili
Kokku: 25949 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on laupäev, 19. oktoober 2019. Kell on 00:14.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2019 PHP Center. Kõik õigused reserveeritud.