2014-01-09 69 views
-1

如何限制顯示多維數組對導航限值顯示多維數組頁面導航的PHP

如果訪問者頁面1將顯示

第一1 2 3 4 .. 509最後

如果2

第一2 3 4 5 .. 509最後

如果頁398

第396 397 398 399 509 ..最後

如果頁509

第1 .. 506 507 508 509最後

我怎麼能做到這一點

感謝意見

[MyProduct] => Array 
    (
     [0] => Array 
      (
       [0] => 1 
       [id] => 1 
       [1] => Title 1 
       [title] => Title 1 
       [2] => Post 1 
       [post] => Post 1 
       [6] => post-1 
       [url] => post-1 
       [18] => 81000 
       [price] => 81000 
      ) 

     [1] => Array 
      (
       [0] => 2 
       [id] => 2 
       [1] => Title 2 
       [title] => Title 2 
       [2] => Post 2 
       [post] => Post 2 
       [6] => post-2 
       [url] => post-2 
       [18] => 75000 
       [price] => 75000 
      ) 

     [2] => Array 
      (
       [0] => 3 
       [id] => 3 
       [1] => Title 3 
       [title] => Title 3 
       [2] => Post 3 
       [post] => Post 3 
       [6] => post-3 
       [url] => post-3 
       [18] => 37000 
       [price] => 37000 
      ) 

     ... and more array ... 

     [510] => Array 
      (
       [0] => 509 
       [id] => 509 
       [1] => Title 509 
       [title] => Title 509 
       [2] => Post 509 
       [post] => Post 509 
       [6] => post-509 
       [url] => post-509 
       [18] => 69000 
       [price] => 69000 
      ) 

    ) 

回答

0

請擺脫這個多維數組,並獲得一個整數,而不是告訴你有多少頁。如果你達到10,000頁,會發生什麼?你將耗盡內存。我會做的方式:

創建一段代碼,有一些場景的:

  1. 用戶在頁面的中間(如4-300)
  2. 用戶在開始時該頁面(例如1-4)
  3. 用戶在頁面的末尾(如301-305)

這是相當容易寫一張每個場景代碼,顯示鏈接到適當的頁面,只要你保持分離TE。

編輯:

一些示例代碼,有沒有聯繫,但你的想法

$current_page = 5; 
$pages = 100; // number of pages 

// beginning 
if ($current_page < 7) { 
    echo implode(' ', range(1,10)); 
    echo '..'; 
    echo implode(' ', range($pages-3, $pages)); 
} 
// end 
else if ($current_page > $pages-7) { 
    echo implode(' ', range(1,3)); 
    echo '..'; 
    echo implode(' ', range($pages-10, $pages)); 
} 
// middle 
else { 
    echo implode(' ', range(1,2)); 
    echo '..'; 
    echo implode(' ', range($current_page-2, $current_page+2)); 
    echo '..'; 
    echo implode(' ', range($pages-1, $pages)); 
} 
+0

你能給的如何做到這一點的樣本? Bram – user3178820

+0

是的,它運作良好 非常感謝Bram – user3178820