如果数据来此非数据库渠道(如xml),却又需要按字段排序,可以用以下方法:
$user =array( array('name' => 'kitty','age'=> 25), array('name' => 'carfield', 'age' => 27), array('name' => 'benben', 'age' => 23) ); foreach($user as $re) $sortData[] = $re['age']; //按age字段排,如果是按第一个字段排(这里是name),可以直接用sort或ksort array_multisort($sortData, SORT_DESC, $user); //要升序,将SORT_DESC改成SORT_ASC; |
下面是多字段排序的方法,类似数据库的order by xx desc,yy asc
原数据:
$oldArr = array( array('age'=>23,'name'=>'apple','height'=>176), array('age'=>22,'name'=>'boy','height'=>169), array('age'=>25,'name'=>'cat','height'=>166) );
|
foreach ($oldArr as $key => $row) { $age[$key] = $row['age']; $name[$key] = $row['name'];
$height[$key] = $row['height']; }
array_multisort($age, SORT_DESC, $name, SORT_ASC, $height,SORT_ASC,$oldArr);//先按age,降序,再按name升,再按height升,如此类推 ?>
|
阅读(1810) | 评论(1) | 转发(0) |