How to add PHP pagination in array's

后端 未结 2 1656
悲&欢浪女
悲&欢浪女 2020-12-08 11:32

I\'ve been trying a lot of ways to add PHP pagination. I have tried searching and trying to figure other ways of implementing the pagination but none of them work.

H

相关标签:
2条回答
  • 2020-12-08 11:59

    u can use simple PHP function called array_slice()

    $menuItems = array_slice( $menuItems, 0, 10 ); 
    

    show first 10 items.

    $menuItems = array_slice( $menuItems, 10, 10 );
    

    show next 10 items.

    UPDATE:

    $page = ! empty( $_GET['page'] ) ? (int) $_GET['page'] : 1;
    $total = count( $yourDataArray ); //total items in array    
    $limit = 20; //per page    
    $totalPages = ceil( $total/ $limit ); //calculate total pages
    $page = max($page, 1); //get 1 page when $_GET['page'] <= 0
    $page = min($page, $totalPages); //get last page when $_GET['page'] > $totalPages
    $offset = ($page - 1) * $limit;
    if( $offset < 0 ) $offset = 0;
    
    $yourDataArray = array_slice( $yourDataArray, $offset, $limit );
    

    UPDATE#2:

    Example of pagination:

    $link = 'index.php?page=%d';
    $pagerContainer = '<div style="width: 300px;">';   
    if( $totalPages != 0 ) 
    {
      if( $page == 1 ) 
      { 
        $pagerContainer .= ''; 
      } 
      else 
      { 
        $pagerContainer .= sprintf( '<a href="' . $link . '" style="color: #c00"> &#171; prev page</a>', $page - 1 ); 
      }
      $pagerContainer .= ' <span> page <strong>' . $page . '</strong> from ' . $totalPages . '</span>'; 
      if( $page == $totalPages ) 
      { 
        $pagerContainer .= ''; 
      }
      else 
      { 
        $pagerContainer .= sprintf( '<a href="' . $link . '" style="color: #c00"> next page &#187; </a>', $page + 1 ); 
      }           
    }                   
    $pagerContainer .= '</div>';
    
    echo $pagerContainer;
    
    0 讨论(0)
  • 2020-12-08 12:14

    Another viable option is to use array_chunk():

    $pagedArray = array_chunk($originalArray, 10, true);
    $nthPage = $pagedArray[$pageNumber];
    
    0 讨论(0)
提交回复
热议问题