比如一个二维数组有12个值,我要查询符合某个条件的值,在每页显示6个,但前6个不符合条件,后6个符合条件。这样的话,在分页显示结果时,第一页就不会显示结果,只有第二页才会显示。我想让符合条件的6个值在第一页就显示。这怎么处理呢?(我将符合条件的数组值又赋了一个数组,但这是一维数组,不知道该怎么分页显示这几个符合条件的结果了)
$int_startpos=$pagenum;for($j=0;$j<count($modelArray);$j++) {
  $modelArray_constellationid  = $modelArray[$j][0];
  $modelArray_phoneticizefirst = $modelArray[$j][1];
  $modelArray_constellationname  = $modelArray[$j][2];    if ($modelArray_phoneticizefirst == "c") {
     $page_modelArray = array("$modelArray_constellationid","$modelArray_phoneticizefirst","$modelArray_constellationname");  
}
}

解决方案 »

  1.   

    if ($modelArray_phoneticizefirst == "c") {
    echo $modelArray_constellationname;
    }
    后面加
    else
    {
      $j--;
    }
    if ($k>=count($modelArray))
    {
     break;
    }
      

  2.   

    有个小错误
    $k>=count($modelArray)
    改成
    $k>count($modelArray)
      

  3.   

    $int_startpos=$pagenum;
    $tmp_n=0;for($j=0;$j<6;$j++) {
    $k = ($int_startpos-1)*6 + $j+$tmp_n;$modelArray_constellationid = $modelArray[$k][0];
    $modelArray_phoneticizefirst = $modelArray[$k][1];
    $modelArray_constellationname = $modelArray[$k][2];
    if ($modelArray_phoneticizefirst == "c") {
    echo $modelArray_constellationname;
    }
    else
    {
    $j--;
    $tmp_n++;
    }
    if ($k>count($modelArray))
    {
    break;
    }
    }
      

  4.   

    干嘛非要在一棵树上吊死?换一种思维就很简单了!//array_filter的回调函数,用语过滤符合输出条件的数组元素
    function foo($ar) {
      if($ar[1] == 'c')
        return true;
      return false;
    }//过滤数组,$out为可供输出的数组
    $out = array_filter($modelArray, 'foo');$pagesize = 6; //每页输出条数
    $page = 1; //当前输出的页号$t = array_slice($out, ($page-1)*$pagesize, $pagesize); //取出当前页显示的内容
    foreach($t as $v) {
    //输出时代码
    }