|
应该是比较常见,根据id返回文章,然后底部加上相邻的文章链接,因为所有的文章都是放在一个表中的,所以同类文章的id未必是连续的,
我的做法是取当前文章的分类,然后根据分类得到此类文章的id数组,按时间排列
当取相邻id的时候,就定位到数组的相应位置,然后去前一位后一位好了
可是PHP数组函数中好像没有位置的函数,如果是a[0],a[2]之类的倒没什么问题,如果是更通用的,PHP数组不需要key是连续的,更未必是数字,相关的数组函数只有current, next, prev,end
初步的解决方案是
- foreach( $id_arr as $id) {
- if ( $id == $matched_id) {
- $next = current($id); // 很奇怪为什么current变成下一个了,但我测试是这样的
- prev($id_arr);
- $prev = prev($id_arr);
- }
- }
复制代码
这个代码看起来是可行的,但是他并没有考虑到边界的问题,似乎PHP并没有数组的边界检查函数,我只好这样做
- if ($next == null){
- $next = -1;
- }
- prev($id_arr);
- $prev = prev($id_arr);
复制代码
但是这样的话,在我这里,指针似乎并不往回走,所以$prev仍然是null, 该怎么做呢 |
|