【问题标题】:Limit display multidimensional array to page navigation php限制显示多维数组到页面导航php
【发布时间】:2014-01-10 03:20:06
【问题描述】:

如何限制显示多维数组进行导航

如果访问者页面 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
            )

    )

【问题讨论】:

    标签: php arrays pagination


    【解决方案1】:

    请去掉这个多维数组,取一个整数来代替它告诉你有多少页。如果达到 10.000 页会发生什么?你会用完内存。我这样做的方式:

    创建一段包含某些场景的代码:

    1. 用户位于页面中间(例如 4-300)
    2. 用户位于页面的开头(例如 1-4)
    3. 用户位于页面末尾(例如 301-305)

    为每个场景编写一段代码来显示相应页面的链接是相当容易的,只要您将其分开即可。

    编辑:

    一些示例代码,没有链接,但你明白了

    $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));
    }
    

    【讨论】:

    • 你能举个例子吗?布拉姆
    猜你喜欢
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    相关资源
    最近更新 更多