前几天说了一个二维数组快速排序的方法,后来查了一下PHP手册,发现有两个函数配合能做出更好的排序来。 array_multisort -- 对多个数组或多维数组进行排序,配合array_slice可应现分页
<?php $data[] = array('volume' => 67, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 1); $data[] = array('volume' => 85, 'edition' => 6); $data[] = array('volume' => 98, 'edition' => 2); $data[] = array('volume' => 86, 'edition' => 6); $data[] = array('volume' => 67, 'edition' => 7);
foreach($data as $k=>$v){
$orderby[$k]=$v['valume'];//你想按哪一列值进行排序就写上哪一列
}
if($descorasc=='desc'){
array_multisort($orderby,SORT_DESC,$data);//
}elseif($descorasc=='acs'){
array_multisort($orderby,SORT_ASC,$data);
}
//如果配合array_slice的话可实现分页显示
$page=isset($page)?$page:1;
$pagesize=isset($pagesize)?$page:3;
$data=array_slice($data,($page-1)*$pagesize,$pagesize);
?>