如何使用PHP在foreach循环中对行进行分页

使用以下代码显示我的Twitter个人资料中的朋友列表。我想一次只加载一个特定的数字,例如20,然后在底部为第1-2-3-4-5页的页面提供分页链接(但是,除以限制)

$xml = simplexml_load_string($rawxml);

foreach ($xml->id as $key => $value)

{

$profile = simplexml_load_file("https://twitter.com/users/$value");

$friendscreenname = $profile->{"screen_name"};

$profile_image_url = $profile->{"profile_image_url"};

echo "<a href=$profile_image_url>$friendscreenname</a><br>";

}

****

if (!isset($_GET['i'])) {

$i = 0;

} else {

$i = (int) $_GET['i'];

}

$limit = $i + 10;

$rawxml = OauthGetFriends($consumerkey, $consumersecret, $credarray[0], $credarray[1]);

$xml = simplexml_load_string($rawxml);

foreach ($xml->id as $key => $value)

{

if ($i >= $limit) {

break;

}

$i++;

$profile = simplexml_load_file("https://twitter.com/users/$value");

$friendscreenname = $profile->{"screen_name"};

$profile_image_url = $profile->{"profile_image_url"};

echo "<a href=$profile_image_url>$friendscreenname</a><br>";

}

echo "<a href=step3.php?i=$i>Next 10</a><br>";

这项工作有效,只需要抵消从开始的输出即可$i。在想array_slice什么?

回答:

一个非常优雅的解决方案是使用LimitIterator

$xml = simplexml_load_string($rawxml);

// can be combined into one line

$ids = $xml->xpath('id'); // we have an array here

$idIterator = new ArrayIterator($ids);

$limitIterator = new LimitIterator($idIterator, $offset, $count);

foreach($limitIterator as $value) {

// ...

}

// or more concise

$xml = simplexml_load_string($rawxml);

$ids = new LimitIterator(new ArrayIterator($xml->xpath('id')), $offset, $count);

foreach($ids as $value) {

// ...

}

以上是 如何使用PHP在foreach循环中对行进行分页 的全部内容, 来源链接: utcz.com/qa/421026.html

回到顶部