比如一个二维数组有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");
}
}
$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");
}
}
echo $modelArray_constellationname;
}
后面加
else
{
$j--;
}
if ($k>=count($modelArray))
{
break;
}
$k>=count($modelArray)
改成
$k>count($modelArray)
$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;
}
}
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) {
//输出时代码
}