Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php foreach数组结果分页_Php_Arrays_Pagination - Fatal编程技术网

Php foreach数组结果分页

Php foreach数组结果分页,php,arrays,pagination,Php,Arrays,Pagination,下面的代码会导致超过27k个ID,因此我想将结果分页为每页100个ID function subtree($id, $parents) { echo ' <tr><td> <b>Client No.:</b> </td><td> '; echo $id; echo ' </td></tr> '; if (isset($parents[$id])) { f

下面的代码会导致超过27k个ID,因此我想将结果分页为每页100个ID

function subtree($id, $parents)
{
    echo ' <tr><td> <b>Client No.:</b> </td><td> ';
    echo $id;
    echo ' </td></tr> ';
    if (isset($parents[$id])) {
        foreach ($parents[$id] as $child) {
            subtree($child, $parents);
        }
    }
} 
函数子树($id,$parents)
{
echo“客户编号:”;
echo$id;
回声';
if(isset($parents[$id])){
foreach($parents[$id]作为$child){
子树($child,$parents);
}
}
} 
$parents是主sql查询中的数组:

$id是父id

当我调用函数时,结果都在同一页中,我现在要做的是将这些结果分页为每页100个。

试试这个

function subtree($id, $parents)
{
    echo ' <tr><td> <b>Client No.:</b> </td><td> ';
    echo $id;
    echo ' </td></tr> ';
    if (isset($parents[$id])) {
        foreach ($parents[$id] as $child) {
            subtree($child, $parents);
        }
    }
} 
$count = 0;
function subtree($id, $parents)
{
    echo ' <tr><td> <b>Client No.:</b> </td><td> ';
    echo $id;
    echo ' </td></tr> ';
    if (isset($parents[$id]))
        foreach ($parents[$id] as $child) {
            if ($count === 100) {
                break;
            }
            subtree($child, $parents);
            $count++;
        }
}
$count=0;
函数子树($id$parents)
{
echo“客户编号:”;
echo$id;
回声';
if(isset($parents[$id]))
foreach($parents[$id]作为$child){
如果($count==100){
打破
}
子树($child,$parents);
$count++;
}
}

这将帮助您每页显示100个结果。现在,您可以创建链接,在下一页显示下100条记录

改进数据库例程。在对多维数据进行分页之前,您可能希望使用一个临时表来帮助展开和规范化多维数据。你需要记录你在哪一页,每一页有多大

如果您使用的是mysql,请使用自动生成的id列指定从哪里开始
和id>300
,然后添加
LIMIT 100
,以说明从哪里结束。 在oracle上,它将是
,RowNum介于300和400之间

另一个选项是使用递归函数构建一个id的平面列表并将其存储在会话中,然后在此基础上运行分页例程

您的另一个选项是将递归重写为堆栈和循环结构,这样您就可以知道在遍历过程中已经走了多远,为此页指定一个起点,遍历它直到到达开始计数器,发出数据直到到达结束标记,然后返回


当然,最糟糕的选择是,如果($count>=$start&&$count)在代码末尾有一个额外的}被删除了,但结果仍然没有分页,只使用globals来表示您试图打印出多少内容,并放入一个
。@PeeHaa,一页中的结果太大了,所以需要将结果分页为100页。