【发布时间】:2015-11-06 05:56:52
【问题描述】:
如果可能的话,我想要一些帮助。
我有一个包含数组项列表的数组(将其视为帖子列表),如下所示:
$array = array(
array(
'title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit',
'date' => 'Tuesday 28th July 2015',
'img_src' => '1130x280&text=FooBar1',
),
array(
'title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit',
'date' => 'Friday 17th July 2015',
'img_src' => '350x150&text=FooBar',
),
array(
'title' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit',
'date' => 'Thursday 9th July 2015',
'img_src' => '350x150&text=FooBar',
),
);
所以基本上我想要做的是尝试正确分页这个数组。我的代码的基本部分是这样的:
$per_page = 3;
$total = count($array);
if ($total > $per_page) {
$this->load->library('pagination');
$config['uri_segment'] = 3;
$config['per_page'] = $per_page;
$config['total_rows'] = $total;
$config['base_url'] = site_url('resources/blog/');
$offset = $this->uri->segment(3);
$this->pagination->initialize($config);
$this->data['pagination'] = $this->pagination->create_links();
} else {
$offset = 0;
$this->data['pagination'] = '';
}
// this is the tricky part of my script
// where I need to slice the array properly each time
if ($offset == 0) {
$data['array'] = array_slice($array, 0, $per_page);
} else {
// this is probably where my mistake is **
$this->data['array'] = array_slice($array, $per_page, $offset);
}
所以基本上我想做的是
当我在分页的第一页时(即资源/博客) 获取我的数组的前 3 个元素,
然后当我移动到下一个分页页面(即资源/博客/3) 获取接下来的 3 个项目,
- 当我单击下一页(即资源/博客/6)时,接下来的 3 项 等等等等。
相反,在第一页上我得到了前 3 个数组项,如预期的那样,在第二页上,我得到了接下来的 3 个数组项,如预期的那样,但在下一页我仍然得到与第二页相同的项目(不是预期的),所以我想我在数组中进行切片的方式有问题(请检查我在 ** 中的代码)。
任何想法如何解决这个问题?提前致谢。
【问题讨论】:
-
最后一行代码中的 $per_page 值始终为 3,因此该数组将始终从第一页之后的第 3 个开始返回结果。您需要根据您所在的页面更新 $per_page,尽管我认为不同的 $value 会更好,因为 $per_page 用于说明每页显示多少结果。
标签: php arrays codeigniter pagination