如何使用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