这是我的分页代码:
<?php
public function getLinks()
{
$links = array();
if (($this->pages) > 1) {
for ($j = 1; $j < ($this->pages + 1); $j++) {
if ($this->page == $j) {
$links['active' => "$j"];
} else {
$links['pages_tag' => "$j"];
}
}
return $links;
}
}
我想使用数组来设置当前页面:
<?php
$pageResult = $pagination->getLinks();
foreach ($pageResult as $class => $page) {
echo "<a class="$class">$page</a>";
}
$class
中的foreach
是
$links['class'], and $page is $links['class' => '$j']
谁知道怎么做?
答案 0 :(得分:0)
我认为您犯了一个错误:如果您想在所有网页中附加数组,则需要更改if
函数中的getLinks
验证,如下所示:
if ($this->page == $j) {
$links['active'] = $j;
} else {
$links['pages_tag'] = $j;
}
以上将是这样的结果:
Array(
'active' => 1,
'pages_tag' => 2,
'pages_tag' => 3,
//. . . some more positions
);
实际上,$links
循环中的每个if
正在覆盖for
数组,导致数组末尾只有一个元素。
答案 1 :(得分:-1)
由于每个链接都必须有一个类(active或pages_tag)和页面索引,在这种情况下变量$ j,可能代码应该是这样的:
public function getLinks()
{
$links = array();
for ($j = 1; $j < ($this->pages + 1); $j++) {
if ($this->page == $j) {
$links[] = ['class' => 'active', 'page' => "$j"];
} else {
$links[] = ['class' => 'pages_tag', 'page' => "$j"];
}
}
return $links;
}
所以当你做一个foreach时,你将通过每次链接获取每个链接来遍历数组,一旦我们知道每个链接都有一个类和一个页面索引,我们就可以用这个代码回显链接:
$pageResult = $pagination->getLinks();
foreach ($pageResult as $link) {
$class = $link['class'];
$page = $link['page'];
echo "<a class="$class">$page</a>";
}