消息关闭
    暂无新消息!

老铁请接招!上下篇函数问题

问题作者 : 旺旺2017-07-02发布

其中$new_id是当前浏览的文章id,而$arr是所有的文章ID的数组,详
//得到上一篇文章的id,如果没有的话就返回0
public function getpreid($news_id,$arr){
      $len=count($arr);
      $pre_id=$news_id;
      if($pre_id==1){
        return 0;
      }else{
        for ($i=1; $i <$len ; $i++) {
          $pre_id=$pre_id-1;
          if(in_array($pre_id,$arr)){
            break;
          }
        }
        return $pre_id;
      }
    }

//得到上一篇文章的id,如果没有的话就返回0
    public function getnextid($news_id,$arr){
      $len=count($arr);
      $next_id=$news_id;
      $last = array_search(max($arr), $arr);
      if($next_id==$arr[$last]){
      return 0;
      }else{
        for ($i=1; $i <$len ; $i++) {
          $next_id=$next_id+1;
          if(in_array($next_id,$arr)){
            break;
          }
        }
        return $next_id;
      }
    }


我传入了id 和数组,貌似返回的还是当前的传入id,肯定是我方式不对,求指点

我要传入什么样的数组格式

Array ( [id] => 19 ) 还是  

Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) [2] => Array ( [id] => 3 ) [3] => Array ( [id] => 4 ) [4] => Array ( [id] => 5 ) [5] => Array ( [id] => 6 ) [6] => Array ( [id] => 8 ) [7] => Array ( [id] => 9 ) [8] => Array ( [id] => 10 ) [9] => Array ( [id] => 11 ) [10] => Array ( [id] => 12 ) [11] => Array ( [id] => 14 ) [12] => Array ( [id] => 15 ) [13] => Array ( [id] => 16 ) [14] => Array ( [id] => 17 ) [15] => Array ( [id] => 18 ) [16] => Array ( [id] => 19 ) ) 

两种都试过了,没一个可行的,  

1个回答

︿ 2
你是从哪里看到这两个奇怪的函数的?

那么定位到当前 id:$i = array_search($new_id, $arr);
则 $arr[$i-1] 就是上一篇的 id,$arr[$i+1] 就是下一篇的 id